2012-02-21 7 views

Respuesta

51

El verdadero truco es colocar a través de todos los niños ven (en este caso: CheckBox) y lo llaman es setEnabled(boolean)

Algo como esto debe hacer el truco:

//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); 
} 
+0

Es bueno saber que el "truco sucio" que hice parece ser la forma real de hacerlo. :RE – WORMSS

0

Puede usar el onCheckedChangeListener en su CheckBox y utilizar el método setEnabled en su RadioGroup.

mejores deseos, Tim

+4

radiogroup.setEnabled (true); no funciona – Elchin

+3

Lo sentimos, pero esto no funciona en RadioGroup. No se propaga hacia abajo, parece. – WORMSS

-1

tomar las medidas pertinentes de acuerdo con el estado de la casilla y establecer el radiogroup en consecuencia. Suponiendo que tiene un grupo de radio llamado grupo de radio, puede habilitar o deshabilitar el grupo de radio por

radiogroup.setEnabled (true);

Agregue un OnCheckedChangeListener() a su casilla de verificación.

+4

radiogroup.setEnabled (true); no funciona – Elchin

+2

Los elementos individuales de RadioButton tienen que estar deshabilitados. –

0

RadioGroup no se puede desactivar directamente, tenemos que recorrer el botón de opción y configurarlo como falso.

Cuestiones relacionadas