我动态创建 RadioGroup
和 RadioButton
如下:
RadioGroup radioGroup = new RadioGroup(context);
RadioButton radioBtn1 = new RadioButton(context);
RadioButton radioBtn2 = new RadioButton(context);
RadioButton radioBtn3 = new RadioButton(context);
radioBtn1.setText("Less");
radioBtn2.setText("Normal");
radioBtn3.setText("More");
radioBtn2.setChecked(true);
radioGroup.addView(radioBtn1);
radioGroup.addView(radioBtn2);
radioGroup.addView(radioBtn3);
这里步骤 radioBtn2.setChecked(true);
导致始终检查 radioBtn2
. 这意味着我无法通过检查其他两个单选按钮( radioBtn1
, radioBtn3
)取消选中 radioBtn2
. 我想让 RadioGroup
一次只能检查一个单选按钮(现在它可以一次检查两个单选按钮) .
我怎么解决这个问题?
8 回答
在activity.xml中添加
android:checked = "true"
我的同事代码中存在同样的问题 . 这听起来就像您的收音机组没有正确设置您的收音机按钮 . 这就是您可以多选单选按钮的原因 . 我尝试了很多东西,最后我做了一个实际上错误的技巧,但工作正常 .
在这里,我设置了一个for循环,它检查可用的单选按钮,并取消选择除新单击的按钮之外的每个按钮 . 试试吧 .
你应该像这样检查radiogroup中的radiobutton:
radiogroup.check(IdOfYourButton)
当然,您首先必须为您的单选按钮设置ID
编辑:我忘了,
radioButton.getId()
也适用,拉克什EDIT2:
适用于radiogroup xml
如果是xml属性,则
android:checkedButton
将检查RadioButton
的id
.在XML文件中,在
RadioGroup
中设置android:checkedButton
字段,其id为默认RadioButton
:这是RadioGroup的一个错误
radioBtn2没有viewId,而generateViewId在onChildViewAdded()
所以,首先是radioGroup.addView(radioBtn2),然后是radioBtn2.setChecked(true);
像这样: