मेरे RadioButton
अंदर दो एस है RadioGroup
। मैं OnClickListener
उन RadioButton
एस पर सेट करना चाहता हूं । जिस RadioButton
पर क्लिक किया गया है, उसके आधार पर , मैं एक का पाठ बदलना चाहता हूं EditText
। इसे कैसे प्राप्त किया जा सकता है?
मेरे RadioButton
अंदर दो एस है RadioGroup
। मैं OnClickListener
उन RadioButton
एस पर सेट करना चाहता हूं । जिस RadioButton
पर क्लिक किया गया है, उसके आधार पर , मैं एक का पाठ बदलना चाहता हूं EditText
। इसे कैसे प्राप्त किया जा सकता है?
जवाबों:
मुझे लगता है कि एक बेहतर तरीका यह है RadioGroup
कि श्रोता को उपयोग और सेट करने के लिए इसे बदलने और अपडेट करने के लिए सेट किया जाए View
(आपको 2 या 3 या 4 आदि श्रोताओं को बचाने के लिए)।
RadioGroup radioGroup = (RadioGroup) findViewById(R.id.yourRadioGroup);
radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener()
{
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
// checkedId is the RadioButton selected
}
});
आशा है कि यह आपकी मदद करेगा...
RadioButton rb = (RadioButton) findViewById(R.id.yourFirstRadioButton);
rb.setOnClickListener(first_radio_listener);
तथा
OnClickListener first_radio_listener = new OnClickListener (){
public void onClick(View v) {
//Your Implementaions...
}
};
radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener()
{
public void onCheckedChanged(RadioGroup group, int checkedId) {
// checkedId is the RadioButton selected
RadioButton rb=(RadioButton)findViewById(checkedId);
textViewChoice.setText("You Selected " + rb.getText());
//Toast.makeText(getApplicationContext(), rb.getText(), Toast.LENGTH_SHORT).show();
}
});
group
की जरूरत है RadioButton rb=(RadioButton)group.findViewById(checkedId);
प्रश्न यह पता लगाने के बारे में था कि किस रेडियो बटन पर क्लिक किया जाता है, यह है कि आप किस बटन पर क्लिक कर सकते हैं
final RadioGroup radio = (RadioGroup) dialog.findViewById(R.id.radioGroup1);
radio.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
View radioButton = radio.findViewById(checkedId);
int index = radio.indexOfChild(radioButton);
// Add logic here
switch (index) {
case 0: // first button
Toast.makeText(getApplicationContext(), "Selected button number " + index, 500).show();
break;
case 1: // secondbutton
Toast.makeText(getApplicationContext(), "Selected button number " + index, 500).show();
break;
}
}
});
आप XML लेआउट से श्रोता भी जोड़ सकते हैं: android:onClick="onRadioButtonClicked"
अपने <RadioButton/>
टैग में।
<RadioButton android:id="@+id/radio_pirates"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/pirates"
android:onClick="onRadioButtonClicked"/>
देखें Android डेवलपर SDK- रेडियो बटन जानकारी के लिए।
बस किसी और के स्वीकृत जवाब से जूझ रहा था:
विभिन्न OnCheckedChangeListener-Interfaces हैं। मैंने यह देखने के लिए पहले एक को जोड़ा कि क्या चेकबॉक्स बदला गया था।
import android.widget.CompoundButton.OnCheckedChangeListener;
बनाम
import android.widget.RadioGroup.OnCheckedChangeListener;
रिकी से स्निपेट को जोड़ते समय मुझसे त्रुटियां हुईं:
प्रकार: RadioGroup प्रकार में SetOnCheckedChangeListener (RadioGroup.OnCheckedChangeListener) तर्क (नए CompoundButton.OnCheckedChangeListener) ({}) के लिए लागू नहीं है
अली से जवाब के साथ तय किया जा सकता है:
new RadioGroup.OnCheckedChangeListener()
चूँकि यह प्रश्न जावा के लिए विशिष्ट नहीं है, मैं जोड़ना चाहूँगा कि आप इसे कोटलिन में कैसे कर सकते हैं :
radio_group_id.setOnCheckedChangeListener({ radioGroup, optionId -> {
when (optionId) {
R.id.radio_button_1 -> {
// do something when radio button 1 is selected
}
// add more cases here to handle other buttons in the RadioGroup
}
}
})
यहां संबंधित RadioGroup का radio_group_id
असाइनमेंट दिया गया android:id
है। इस तरह से इसका उपयोग करने के लिए आपको kotlinx.android.synthetic.main.your_layout_name.*
अपनी गतिविधि के कोटलिन फ़ाइल में आयात करना होगा । यह भी ध्यान दें कि अगर radioGroup
लैम्ब्डा पैरामीटर अप्रयुक्त है, तो इसे _
कोटलिन 1.1 के बाद से (एक अंडरस्कोर) से बदला जा सकता है ।
RadioGroup radioGroup = (RadioGroup) findViewById(R.id.yourRadioGroup);
radioGroup.setOnClickListener(v -> {
// get selected radio button from radioGroup
int selectedId = radioGroup.getCheckedRadioButtonId();
// find the radiobutton by returned id
radioButton = findViewById(selectedId);
String slectedValue=radioButton.getText()
});
Kotlin के लिए यहाँ लैम्बडा एक्सप्रेशन जोड़ा गया है और कोड ऑप्टिमाइज़ किया गया है।
radioGroup.setOnCheckedChangeListener { radioGroup, optionId ->
run {
when (optionId) {
R.id.radioButton1 -> {
// do something when radio button 1 is selected
}
R.id.radioButton2 -> {
// do something when radio button 2 is selected
}
// add more cases here to handle other buttons in the your RadioGroup
}
}
}
आशा है कि यह आपकी मदद करेगा। धन्यवाद!