2012-02-21 12 views

risposta

51

Il vero trucco è quello di un ciclo tra tutti i bambini vedono (in questo caso: CheckBox) e lo chiamano è setEnabled(boolean)

Qualcosa del genere dovrebbe fare il trucco:

//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

È bello sapere che il "trucco sporco" che ho fatto sembra essere il modo reale di farlo. : D – WORMSS

0

È possibile utilizzare il onCheckedChangeListener sul CheckBox e utilizzare il metodo setEnabled sul Gruppo Radio.

migliori auguri, Tim

+4

radiogroup.setEnabled (true); non funziona – Elchin

+3

Siamo spiacenti, ma questo non funziona su RadioGroup. Non si propaga in basso sembra. – WORMSS

-1

Prendere azioni a seconda dello stato della casella di controllo e impostare la RadioGroup conseguenza. Supponendo di disporre di un gruppo radio denominato radiogruppo, è possibile abilitare o disabilitare il radiogruppo entro

radiogroup.setEnabled (true);

Aggiungi un OnCheckedChangeListener() alla casella di controllo.

+4

radiogroup.setEnabled (true); non funziona – Elchin

+2

Le singole voci RadioButton devono essere disabilitate. –

0

RadioGroup non può essere disattivato direttamente, dobbiamo scorrere il pulsante di opzione e impostarlo come falso.

Problemi correlati