如何在选中checkbox之前禁用RadioGroup

我有一个广播组,我不想让用户能够选择任何按钮,直到我的应用程序中选择了一个特定的checkbox。 如果未选中该checkbox,则会禁用无线电组。 我该怎么做呢

  • 如何在Android中均匀分配出无线电按钮?
  • 如何在Android中均匀地分隔出单选button?
  • RadioButton的自定义布局
  • android onCheckedChanged为radiogroup
  • Android:RadioGroup - 如何configuration事件监听器
  • RadioGroup三次调用onCheckChanged()
  • RadioGroup有两列,有十个RadioButtons
  • RadioGroup有两个有10个RadioButton的列
  • 真正的诀窍是遍历所有子视图(在本例中为: 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 。

    祝愿,蒂姆

    无法直接禁用RadioGroup,我们必须遍历单选按钮并将其设置为false。

    如果您只有几个单选按钮,更好的方法是为所有孩子设置setClickable(false)

     radiobutton1.setClickable(false); radiobutton2.setClickable(false); radiobutton3.setClickable(false); 

    根据checkbox的状态执行操作并相应地设置radiogroup。 假设您有一个名为radiogroup的无线电组,您可以启用或禁用radiogroup

    radiogroup.setEnabled(真);

    将OnCheckedChangeListener()添加到您的checkbox。