Android: RadioGroup-ईवेंट श्रोता को कैसे कॉन्फ़िगर करें




listener radio-group (3)

इस तरह से आप चेक किए गए रेडियोबॉटन को प्राप्त करते हैं:

// This will get the radiogroup
RadioGroup rGroup = (RadioGroup)findViewById(r.id.radioGroup1);
// This will get the radiobutton in the radiogroup that is checked
RadioButton checkedRadioButton = (RadioButton)rGroup.findViewById(rGroup.getCheckedRadioButtonId());

श्रोता का उपयोग करने के लिए, आप ऐसा करते हैं:

// This overrides the radiogroup onCheckListener
rGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener()
{
    public void onCheckedChanged(RadioGroup group, int checkedId)
    {
        // This will get the radiobutton that has changed in its check state
        RadioButton checkedRadioButton = (RadioButton)group.findViewById(checkedId);
        // This puts the value (true/false) into the variable
        boolean isChecked = checkedRadioButton.isChecked();
        // If the radiobutton that has changed in check state is now checked...
        if (isChecked)
        {
            // Changes the textview's text to "Checked: example radiobutton text"
            tv.setText("Checked:" + checkedRadioButton.getText());
        }
    }
});

मेरी समझ से, यह निर्धारित करने के लिए कि क्या एक चेकबॉक्स "क्लिक" है और यह देखें कि क्या इसकी जाँच की गई है या नहीं, कोड जैसे कि निम्नलिखित हो सकते हैं:

cb=(CheckBox)findViewById(R.id.chkBox1);
        cb.setOnCheckedChangeListener(this);

public void onCheckedChanged(CompoundButton buttonView, 
    boolean isChecked) { 
        if (isChecked) { 
            cb.setText("This checkbox is: checked"); 
        } 
        else { 
            cb.setText("This checkbox is: unchecked"); 
        } 
    }

हालाँकि, मैं एक रेडियोग्राफ़ के लिए उपरोक्त कार्य करने के तर्क पर काम करने में असमर्थ हूं।

यहाँ मेरे RadioGroup के लिए xml है:

<RadioGroup android:id="@+id/radioGroup1" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content">
    <RadioButton android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/radio1" android:checked="true" 
    android:text="RadioButton1">
    </RadioButton>
    <RadioButton android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/radio2" android:text="RadioButton2" android:checked="true">
    </RadioButton>
    <RadioButton android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/radio3" android:text="RadioButton3">
    </RadioButton>
</RadioGroup>

प्रश्न: क्या मुझे दूसरे श्रोता को सेटअप करने की आवश्यकता है, या श्रोता पहले से ही इस समूह को "रजिस्टर" भी करेगा?

इसके अलावा, श्रोता को रेडियो ग्रुप या रेडियोबटन पर सेट किया जाना चाहिए?


यह कुछ इस तरह होना चाहिए।

RadioGroup rb = (RadioGroup) findViewById(R.id.radioGroup1);
rb.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
        public void onCheckedChanged(RadioGroup group, int checkedId) {
            switch (checkedId) {

            }
        }

    });

CheckId के आधार पर, आपको पता चल जाएगा कि कौन से रेडियोबॉटन को क्लिक किया गया है और फिर उसके चेक या अनचेक किए जाने पर अपने उपरोक्त कोड का उपयोग करें। यह होमवर्क है। ;)


//Within the Activity that hosts this layout, the following method handles the click event for both radio buttons:

public void onRadioButtonClicked(View view) {
// Is the button now checked?
boolean checked = ((RadioButton) view).isChecked();

// Check which radio button was clicked
switch(view.getId()) {
    case R.id.radio_pirates:
        if (checked)
            // Pirates are the best
        break;
    case R.id.radio_ninjas:                       
        if (checked)
            // Ninjas rule
        break;
}
}






android-radiobutton