代码中的Android检查单选按钮使其在放射组中保持检查状态

时间:2018-05-22 08:19:48

标签: android kotlin radio-button

我在RadioGroup中添加了动态添加的单选按钮。我必须根据一些数据在代码中检查其中一个。

现在,问题是在显示单选按钮并且用户检查同一组中的另一个单选按钮之后,仍然检查先前选择的无线电...导致两次检查RadioButtons

Radio buttons with one of them that can't be unchecked

这就是我在Kotlin中渲染按钮的方式:

val rg = RadioGroup(this).apply { orientation = RadioGroup.HORIZONTAL }
choices.values.forEach { c ->
    rg.addView(RadioButton(this).apply {
        tag = someTag
        text = c
        isChecked = answer.equals(c) // condition
    })
}

奇怪的是,如果没有以编程方式检查RadioButton,一切正常。

2 个答案:

答案 0 :(得分:4)

而不是设置radioButton.isChecked = ...。尝试使用radioGroup.check(id)

答案 1 :(得分:0)

我将此代码用于RadioButton。

`radio_rg.setOnCheckedChangeListener { _, checkedId ->
  val radio: RadioButton = findViewById(checkedId)
        when (radio) {
            radioBtn1 -> {
              // some code
            }
            radioBtn2 -> {
             // some code
       }
    }`

希望这对你有所帮助。

关于没有检查RadioButton我不知道,我从来没有尝试过。