【发布时间】:2016-06-21 07:14:27
【问题描述】:
我的布局中有 16 个 Radio Group ,我有 40 个 Radio Button 。我想在单选组中未选中哪个单选按钮。我想知道我怎么知道我的布局中是否有任何未选中的单选按钮谢谢
【问题讨论】:
标签: android
我的布局中有 16 个 Radio Group ,我有 40 个 Radio Button 。我想在单选组中未选中哪个单选按钮。我想知道我怎么知道我的布局中是否有任何未选中的单选按钮谢谢
【问题讨论】:
标签: android
【讨论】:
您可能应该像这样对所有按钮进行分组:
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。
【讨论】:
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();
}
【讨论】: