如何在android中获取所有未经检查的单选按钮

时间:2016-03-07 16:23:45

标签: android

我的布局中有16个Radio Group,我有40个Radio Button。我想在Radio Groups中取消选中哪个单选按钮。我想知道我怎么知道我的布局中有没有未经检查的单选按钮谢谢

3 个答案:

答案 0 :(得分:1)

您应该将所有按钮分组,如下所示:

RadioGroup rg = (RadioGroup) findViewById(R.id.my_radio_group);
List<RadioButton> radioButtonsList = new ArrayList<>();
for(int i = 0; i < rg.getChildCount(); ++i) {
   RadioButton b = rg.getChildAt(i);
   if(b.isChecked()) radioButtonsList.add(b);
}

为所有群组执行此操作,并且您将在列表中包含所有未经检查的按钮。

您也可以使用:

int checkedRadioButtonId = rg.getCheckedRadioButtonId()

只获取已选中按钮的ID。

答案 1 :(得分:0)

您可以使用isChecked()方法检查单选按钮的状态。

这个问题已在这里得到解答:

How to check if "Radiobutton" is checked?

答案 2 :(得分:0)

    ArrayList<RadioGroup> radioGroupList = new ArrayList<RadioGroup>();
    RadioGroup group1 = (RadioGroup)findViewById(...);
    RadioGroup group2 = (RadioGroup)findViewById(...);
    .
    .
    RadioGroup group16 = (RadioGroup)findViewById(...);
    radioGroupList.add(group1);
    radioGroupList.add(group2);
    .
    .
    radioGroupList.add(group16);

以后您可以使用此

检查选中的内容
    for(RadioGroup radioButtonGroup:RadioGroupList){
        int radioButtonID = radioButtonGroup.getCheckedRadioButtonId();
        View radioButton = radioButtonGroup.findViewById(radioButtonID);
        int idx = radioButtonGroup.indexOfChild(radioButton);
    }

或者如果它是您感兴趣的RadioButtons然后以相同的方式将它们添加到ArrayList中并像这样在该列表中循环

for(RadioButton radioButton:radioButtonList){
    boolean isChecked = radioButton.isChecked();
}