我想知道是否可以使用RadioGroup将所有RadioButtons设置为指定值。就我而言,我有这个:
public void displayFalse(View view) {
if(view.getId() == R.id.btnPrimers)
for (int i = 0; i < rgPrimer.getChildCount(); i++) {
rgSegon.getChildAt(i).setEnabled(false);
//something like: .setChecked(false);
}else if(view.getId() == R.id.btnSegons){
for (int i = 0; i < rgSegon.getChildCount(); i++) {
rgSegon.getChildAt(i).setEnabled(false);
}
}else if(view.getId() == R.id.btnSegons) {
for (int i = 0; i < rgPostre.getChildCount(); i++) {
rgPostre.getChildAt(i).setEnabled(false);
}
} else {
}
}
因此,我有一个不同的<LinearLayout>
,其中每个按钮都可以通过按钮看到。因此,如果已选择按钮,则将显示布局,内部的所有radioGroup也将显示。所以在这里,我检查选择的按钮,然后进入该布局中的radioGroup,并将它们设置为false。
我也尝试过:
public void displayFalse(View view) {
if(view.getId() == R.id.btnPrimers){
rbPrimer1.setChecked(false);
rbPrimer2.setChecked(false);
rbPrimer3.setChecked(false);
rbPrimer4.setChecked(false);
}else if(view.getId() == R.id.btnSegons){
rbSegon1.setChecked(false);
rbSegon2.setChecked(false);
rbSegon3.setChecked(false);
rbSegon4.setChecked(false);
}else if(view.getId() == R.id.btnSegons) {
rbPostre1.setChecked(false);
rbPostre2.setChecked(false);
rbPostre3.setChecked(false);
rbPostre4.setChecked(false);
} else {
}
但这既不起作用。如何解决该问题,并且有改进的版本吗?
答案 0 :(得分:2)
RadioGroup有一个方法:
clearCheck()
它完全满足您的要求:
public void displayFalse(View view) {
if (view.getId() == R.id.btnPrimers)
rgSegon.clearCheck(); //is this the right RadioGroup?
} else if (view.getId() == R.id.btnSegons) {
rgSegon.clearCheck();
} else if (view.getId() == R.id.btnSegons) { //is this the right ID?
rgPostre.clearCheck();
}
}
答案 1 :(得分:1)
尝试一下:
RadioGroup radioGroup = (RadioGroup)findViewById(R.id.radiogroup);radioGroup.clearCheck();