Uygulamamda belirli bir onay kutusu seçilinceye kadar, düğmelerden herhangi birini seçebilmeyi istemediğim bir radyo grubu var. Onay kutusu seçilmezse, bu radyo grubunu devre dışı bırakır. Bunu yapmayı nasıl yaparım.Onay kutusu işaretleninceye kadar RadioGroup nasıl devre dışı bırakılır
cevap
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
CheckBox'ınızda onCheckedChangeListener'u kullanabilir ve RadioGroup'unuzda setEnabled yöntemini kullanabilirsiniz.
iyi dileklerimle, Tim
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
radiogroup.setEnabled (true); çalışmaz – Elchin
Bireysel RadioButton öğeleri devre dışı bırakılmalıdır. –
, radyo düğmesiyle döngü yapmalı ve yanlış olarak ayarlamalıyız.
Yaptığım "kirli hack" in yapmanın gerçek yolu olduğunu biliyoruz. : D – WORMSS