2012-02-21 11 views

cevap

51

gerçek hüner döngü olduğunu ve çağrı böyle setEnabled(boolean)

şey hile yapmak gerekir bulunuyor:

//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); 
} 
RadioGroup doğrudan devre dışı bırakılamaz
+0

Yaptığım "kirli hack" in yapmanın gerçek yolu olduğunu biliyoruz. : D – WORMSS

0

CheckBox'ınızda onCheckedChangeListener'u kullanabilir ve RadioGroup'unuzda setEnabled yöntemini kullanabilirsiniz.

iyi dileklerimle, Tim

+4

radiogroup.setEnabled (true); çalışmıyor – Elchin

+3

Üzgünüz, ama bu RadioGroup üzerinde çalışmıyor. Aşağı yaymaz gibi görünüyor. – WORMSS

-1

onay kutusunun durumuna göre işlem yapın ve buna göre RadioGroup ayarlayın. Radyo grubu adında bir radyo grubuna sahip olduğunuzu varsayarak, radyo grubunu

radiogroup.setEnabled (true);

Onay kutunuza bir OnCheckedChangeListener() ekleyin. Tüm çocukların (bu durumda: CheckBox) görüntülemek aracılığıyla

+4

radiogroup.setEnabled (true); çalışmaz – Elchin

+2

Bireysel RadioButton öğeleri devre dışı bırakılmalıdır. –

0

, radyo düğmesiyle döngü yapmalı ve yanlış olarak ayarlamalıyız.

İlgili konular