Android के साथ रेडियोग्रुप में डिफ़ॉल्ट रूप से चेक किए गए रेडियो बटन को कैसे सेट करें




radio-button radio-group (7)

मैंने RadioGroup और RadioButton गतिशील रूप से निम्नलिखित के रूप में बनाया है

RadioGroup radioGroup = new RadioGroup(context);
                    RadioButton radioBtn1 = new RadioButton(context);
                    RadioButton radioBtn2 = new RadioButton(context);
                    RadioButton radioBtn3 = new RadioButton(context);

                    radioBtn1.setText("Less");
                    radioBtn2.setText("Normal");
                    radioBtn3.setText("More");

                    radioBtn2.setChecked(true);

                    radioGroup.addView(radioBtn1);
                    radioGroup.addView(radioBtn2);
                    radioGroup.addView(radioBtn3);

यहां radioBtn2.setChecked(true); radioBtn2 हमेशा radioBtn2 है। इसका मतलब है कि मैं अन्य दो रेडियो बटन ( radioBtn1 , radioBtn3 ) की जांच करके रेडियो radioBtn2 को अनचेक नहीं कर सकता। मैं यह बनाना चाहता हूं कि रेडियो समूह एक समय में केवल एक रेडियो बटन देख सकता है (अब यह एक समय में दो रेडियोधटन की जांच कर सकता है)। इस समस्या का समाधान किस प्रकार से किया जा सकता है?


android:checked = "true" जोड़ें android:checked = "true" अपनी गतिविधि.xml में android:checked = "true"


एक्सएमएल फ़ाइल में android:checkedButton सेट किया गया android:checkedButton आपके android:checkedButton में android:checkedButton फ़ील्ड, आपके डिफ़ॉल्ट android:checkedButton की आईडी के साथ:

<RadioGroup
    ....
    android:checkedButton="@+id/button_1">

    <RadioButton
        android:id="@+id/button_1"
        ...../>

    <RadioButton
        android:id="@+id/button_2"
        ...../>

    <RadioButton
        android:id="@+id/button_3"
        ...../>
</RadioGroup>

मेरे सहयोगी के कोड में एक ही समस्या थी। ऐसा लगता है क्योंकि आपका रेडियो समूह आपके रेडियो बटन के साथ ठीक तरह से सेट नहीं है। यही कारण है कि आप रेडियो बटन का चयन कर सकते हैं। मैंने कई चीजों की कोशिश की, अंत में मैंने एक चाल की जो वास्तव में गलत है, लेकिन ठीक काम करता है।

for ( int i = 0 ; i < myCount ; i++ )
{
    if ( i != k )
    {
        System.out.println ( "i = " + i );
        radio1[i].setChecked(false);
    }
}

यहां मैंने लूप के लिए एक सेट किया है, जो उपलब्ध रेडियो बटनों की जांच करता है और नए क्लिक किए गए एक को छोड़कर हर किसी को डि-सिलेक्ट करता है। कोशिश करो।


RadioGroup radioGroup = new RadioGroup(context);
RadioButton radioBtn1 = new RadioButton(context);
RadioButton radioBtn2 = new RadioButton(context);
RadioButton radioBtn3 = new RadioButton(context);

radioBtn1.setText("Less");
radioBtn2.setText("Normal");
radioBtn3.setText("More");

radioGroup.addView(radioBtn1);
radioGroup.addView(radioBtn2);
radioGroup.addView(radioBtn3);
radioBtn2.setChecked(true);

आपको इस तरह के रेडियोग्रुप में रेडियोधटन की जांच करनी चाहिए:

radiogroup.check(IdOfYourButton)

बेशक आपको पहले अपने रेडियोबॉटन में एक आईडी सेट करना होगा

संपादित करें: मैं भूल गया, radioButton.getId() काम करता है, radioButton.getId() रमेश


    RadioGroup radioGroup = new RadioGroup(WvActivity.this);
    RadioButton radioBtn1 = new RadioButton(this);
    RadioButton radioBtn2 = new RadioButton(this);
    RadioButton radioBtn3 = new RadioButton(this);

    radioBtn1.setText("Less");
    radioBtn2.setText("Normal");
    radioBtn3.setText("More");


    radioGroup.addView(radioBtn1);
    radioGroup.addView(radioBtn2);
    radioGroup.addView(radioBtn3);

    radioGroup.check(radioBtn2.getId());

यह रेडियो ग्रुप का एक बग है

RadioButton radioBtn2 = new RadioButton(context);

रेडियोबीटीएन 2 बिना दृश्य आईडी, और जेनरेटिव्यूविंग ऑन-इन हैल्डव्यूएडएड ()

public void onChildViewAdded(View parent, View child) {
    if (parent == RadioGroup.this && child instanceof RadioButton) {
        int id = child.getId();
        // generates an id if it's missing
        if (id == View.NO_ID) {
            id = View.generateViewId();
            child.setId(id);
        }
        ((RadioButton) child).setOnCheckedChangeWidgetListener(
                mChildOnCheckedChangeListener);
    }

    if (mOnHierarchyChangeListener != null) {
        mOnHierarchyChangeListener.onChildViewAdded(parent, child);
    }
}

तो, पहले रेडियो समूह .addView (रेडियोबीटीएन 2), फिर रेडियोबीटीएन 2.सेट चेक (सत्य);

इस कदर:

RadioGroup radioGroup = new RadioGroup(context);
RadioButton radioBtn1 = new RadioButton(context);
RadioButton radioBtn2 = new RadioButton(context);
RadioButton radioBtn3 = new RadioButton(context);

radioBtn1.setText("Less");
radioBtn2.setText("Normal");
radioBtn3.setText("More");

radioGroup.addView(radioBtn1);
radioGroup.addView(radioBtn2);
radioGroup.addView(radioBtn3);

radioBtn2.setChecked(true);




radio-group