如何禁用RadioGroup,直到checkbox被选中

我有一个收音机组,我不想让用户能够select任何button,直到我的应用程序中select一个特定的checkbox。 如果checkbox未被选中,则会禁用无线电组。 我如何去做这件事。

Solutions Collecting From Web of "如何禁用RadioGroup,直到checkbox被选中"

真正的技巧是循环所有的子视图(在这种情况下: CheckBox ),并调用它的setEnabled(boolean)

像这样的事情应该做的伎俩:

 //initialize the controls final RadioGroup rg1 = (RadioGroup)findViewById(R.id.radioGroup1); CheckBox ck1 = (CheckBox)findViewById(R.id.checkBox1); //set setOnCheckedChangeListener() ck1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton checkBox, boolean checked) { //basically, since we will set enabled state to whatever state the checkbox is //therefore, we will only have to setEnabled(checked) for(int i = 0; i < rg1.getChildCount(); i++){ ((RadioButton)rg1.getChildAt(i)).setEnabled(checked); } } }); //set default to false for(int i = 0; i < rg1.getChildCount(); i++){ ((RadioButton)rg1.getChildAt(i)).setEnabled(false); } 

您可以在CheckBox上使用onCheckedChangeListener ,并在您的RadioGroup上使用setEnabled方法。

祝好,Tim

RadioGroup不能被直接禁用,我们必须循环单选button并将其设置为false。

根据checkbox的状态采取行动并相应地设置radiogroup。 假设你有一个名为radiogroup的无线电组,你可以通过启用或禁用radiogroup

radiogroup.setEnabled(真);

将OnCheckedChangeListener()添加到您的checkbox。