2010-07-26 11 views
5

मैं अपने लेआउट में एक रेडियो बटन जोड़ता हूं।रेडियो बटन अपने राज्य को टॉगल नहीं करता

यह शुरू करने के लिए अनचेक है। और जब मैं उस पर क्लिक करता हूं, तो यह चेक हो जाता है (जैसा कि एमुलेटर में दिखाया गया है)। लेकिन जब मैं इसे फिर से क्लिक करता हूं, तो यह फिर से अनचेक नहीं होता है?

<RadioButton android:checked="false" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/option1"/> 
+3

लेकिन इस तरह एक रेडियोबूटन * काम * करने के लिए है। –

उत्तर

3

यदि आप केवल एक रेडियो बॉक्स को चालू और बंद करने के लिए उपयोग कर रहे हैं, तो आपको इसके बजाय चेकबॉक्स या टॉगल बटन का उपयोग करना चाहिए।

http://developer.android.com/resources/tutorials/views/hello-formstuff.html

नीचे स्क्रॉल करें और चेकबॉक्स दिखाई और टॉगल बटन।

रेडियो का उपयोग करते समय आप आमतौर पर एक से अधिक होते हैं और उनके बीच चयन करते हैं। आसान, मध्यम, कठिन की तरह।

+0

मैं अपने नियंत्रण में 'एंड्रॉइड के चेकबॉक्स स्टाइल' को कैसे निर्दिष्ट कर सकता हूं? – michael

1

यह एक वैचारिक प्रश्न है: रेडियो बटन आपको कई विकल्पों (अन्य रेडियो बटनों द्वारा प्रतिनिधित्व) के बीच चयन करने की अनुमति देता है। आम तौर पर, किसी समूह के बाहर एक रेडियो बटन हमेशा चेक किया जाता है, भले ही प्रारंभिक स्थिति में कोई बटन चेक न किया जाए, यदि आप डिफ़ॉल्ट मान के रूप में घोषित नहीं करते हैं। इसका मतलब यह भी है कि एक बटन एक ही समूह में अन्य रेडियो बटन मौजूद नहीं होने तक अपने राज्य को टॉगल करने की अनुमति नहीं देता है - यदि केवल एक विकल्प है, तो आपको इसे चुनना होगा।

यदि आप बाइनरी टॉगल चाहते हैं, तो आप इसके बजाय एक चेकबॉक्स का उपयोग करना चाहेंगे।

3

आप तो इस प्रकार है "RadioGroups" जोड़ने के साथ काम करने के 1 से अधिक रेडियो बटन हो रही है:

<RadioGroup android:id="@+id/group1" android:layout_width="fill_parent" 
     android:layout_height="wrap_content" android:orientation="vertical"> 
     <RadioButton android:id="@+id/radio1" android:text="madras" 
      android:layout_width="wrap_content" android:layout_height="wrap_content" /> 
     <RadioButton android:id="@+id/radio2" android:text="bombay" 
      android:layout_width="wrap_content" android:layout_height="wrap_content" /> 
    </RadioGroup> 

इस example पर एक नज़र डालें, मुझे यकीन है कि यह अपने विचार रेडियो के बारे में स्पष्ट कर देगा हूँ बटन

यह भी देखें Android Developer - Form Stuff page

1

समाधान जाँच सेट किया गया है [सही/गलत] जावा कोड

ToggleButton t = (ToggleButton) findViewById(R.id.toggle_button); 
t.setChecked(true); 
// t.setChecked(false); 
3

में मध्यवर्ती आप रेडियो बटन उपस्थिति के साथ चेकबॉक्स व्यवहार के लिए देख रहे हैं, तो आप एक्सएमएल शैली में एक चेकबॉक्स को दे सकते हैं।

<CheckBox android:checked="true" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/option1" 
     style="@android:style/Widget.DeviceDefault.Light.CompoundButton.RadioButton/> 

यह कुछ मामलों में उपयोगी हो सकता है (उदा। कोई RecyclerView में रेडियो बटन का प्रयोग करके), लेकिन क्योंकि उपयोगकर्ता रेडियो बटन एक निश्चित तरीके से व्यवहार करने की उम्मीद आप सावधान रहना चाहिए। यदि आप उपयोगकर्ता को कई चयन करने की इजाजत दे रहे हैं तो आपको ऊपर दी गई टिप्पणियों में उल्लिखित सामान्य चेकबॉक्स का उपयोग करना चाहिए।

आशा है कि इससे मदद मिलती है!

1

SO पर बहुत कुछ खोजने के बाद, मैं एक बहुत अच्छा लेकिन सभ्य कामकाज के साथ आया था।

आपके पास प्रत्येक रेडियोबटन के लिए boolean वैरिएबल घोषित करें, इसे false के साथ प्रारंभ करें, और प्रत्येक क्लिक पर वेरिएबल और रेडियोबटन की स्थिति बदलें।

boolean isToggledRadio1 = false; 
RadioButton radio1 = (RadioButton) findViewById(R.id.radiobutton1); 
radio1.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     isToggledRadio1 = !isToggledRadio1; //Switch boolean value 
     RadioButton rb = (RadioButton)v; 
     rb.setChecked(isToggledRadio1); 
    } 
}); 

  1. मैं जानता हूँ कि यह एक चेकबॉक्स का उपयोग करने के लिए आदर्श है, लेकिन अगर किसी को radiobutton की जरूरत है, तो वे radiobutton की जरूरत है।

  2. इस रूप में यह मूल रूप से दो बार हर बार उपयोगकर्ता बटन पर क्लिक करता बटन को चालू होगा, सर्वोत्कृष्ट समाधान नहीं है, (एक डिफ़ॉल्ट व्यवहार, दूसरी बार अपने onclick समारोह के अंदर जाता है), इसलिए यदि आप ' OnCheckedChangeListener का उपयोग कर फिर से आपको एक ही क्लिक के लिए दो कॉल मिलेंगे।

  3. एक और कामकाज है, जो android:button को एक एक्सबॉक्स टेम्पलेट के साथ दूसरे ड्रॉबल में चेकबॉक्स में बदलना है, लेकिन यह थोड़ा अधिक जटिल है, राज्यों के लिए कम से कम 2 और फाइलों की आवश्यकता है।

+1

यह मेरे लिए काम करता है। धन्यवाद – Vrajesh

संबंधित मुद्दे