2012-02-21 19 views
21

मेरे पास एक रेडियो समूह है जो मैं नहीं चाहता कि उपयोगकर्ता किसी भी बटन का चयन करने में सक्षम न हो, जब तक कि मेरे ऐप में कोई विशेष चेकबॉक्स चयनित न हो। यदि चेकबॉक्स अनचाहे है तो यह रेडियो-समूह को अक्षम करता है। मैं यह कार्य कैसे करूं।चेकबॉक्स चेक किए जाने तक रेडियो ग्रुप को अक्षम कैसे करें

उत्तर

51

असली चाल पाश करने के लिए है और कॉल यह 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); 
} 
+0

यह जानना अच्छा है कि "गंदे हैक" मैंने ऐसा करने का वास्तविक तरीका प्रतीत होता है। : डी – WORMSS

0

आप अपने चेकबॉक्स पर onCheckedChangeListener का उपयोग कर सकते हैं और अपने रेडियो ग्रुप पर setEnabled विधि का उपयोग कर सकते हैं।

शुभकामनाएं, टिम

+4

radiogroup.setEnabled (सत्य); काम नहीं करता – Elchin

+3

क्षमा करें, लेकिन यह रेडियो ग्रुप पर काम नहीं करता है। ऐसा लगता है कि यह प्रचार नहीं करता है। – WORMSS

-1

चेकबॉक्स की स्थिति के अनुसार कार्रवाई करें और RadioGroup अनुसार सेट। मान लीजिए कि आपके पास रेडियोग्रुप नामक एक रेडियो-समूह है, आप

radiogroup.setEnabled (true) द्वारा रेडियोग्रुप को सक्षम या अक्षम कर सकते हैं;

अपने चेकबॉक्स में एक ऑन चेक किए गए चेंजलिस्टर() जोड़ें। के माध्यम से सभी बच्चों को (इस मामले में: CheckBox) देखने

+4

radiogroup.setEnabled (सत्य); काम नहीं करता – Elchin

+2

व्यक्तिगत रेडियोबटन आइटम को अक्षम करना होगा। –

0

RadioGroup सीधे निष्क्रिय नहीं किया जा सकता है, हमें रेडियो बटन के माध्यम से लूप करना होगा और इसे गलत के रूप में सक्षम करना होगा।