【问题标题】:The best practice to make radio buttons respond to onClick events pragramatically within fragment (kotlin)使单选按钮在片段中以编程方式响应 onClick 事件的最佳实践(kotlin)
【发布时间】:2021-08-16 04:26:29
【问题描述】:

我正在寻找使单选按钮在片段 (kotlin) 中以实用的方式响应 onClick 事件的最佳实践。

我想出了这个解决方案,但我认为这不是最好的。这是一个小sn-p:

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
    super.onViewCreated(view, savedInstanceState)

    fun onRadioButtonClicked(view: View) {
        if (view is RadioButton) {
            val checked = view.isChecked

            when (view.getId()) {
                R.id.option1 ->
                    if(checked) {
                        do something
                    }
                R.id.option2 ->
                    if(checked) {
                        do something
                    }
                R.id.option3 ->
                    if(checked) {
                        do something
                    }
                R.id.option4 ->
                    if(checked) {
                        do something
                    }
                R.id.option5 ->
                    if(checked) {
                        do something
                    }
            }
        }
    }

itemOptions = arrayOf(
        binding.option1,
        binding.option2,
        binding.option3,
        binding.option4,
        binding.option5
    )

itemOptions.forEach { x ->
        x.setOnClickListener{onRadioButtonClicked(x)}
    }

谁能推荐一个更好的选择?

【问题讨论】:

    标签: android kotlin radio-button


    【解决方案1】:

    单选按钮有一个 Radio 组,您需要在其上实现 setOnCheckedChangeListener

    radioGroup.setOnCheckedChangeListener{ radioGroup: RadioGroup, checkedId: Int ->
        when(checkedId) -> {
           R.id.option1 -> //do something
           R.id.option2 -> //do something
           R.id.option3 -> //do something
           R.id.option4 -> //do something
       }
    }
    

    【讨论】:

      猜你喜欢
      • 2021-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-28
      • 2011-09-16
      • 2011-01-27
      • 2011-11-12
      • 1970-01-01
      相关资源
      最近更新 更多