Tôi có hai RadioButton
s bên trong một RadioGroup
. Tôi muốn đặt OnClickListener
trên những số RadioButton
đó. Tùy thuộc vào đó RadioButton
được nhấp, tôi muốn thay đổi văn bản của một EditText
. Làm thế nào tôi có thể đạt được điều này?Làm thế nào để thiết lập OnClickListener trên RadioButton trong Android?
Trả lời
Tôi nghĩ rằng một cách tốt hơn là sử dụng RadioGroup
và thiết lập người nghe về điều này để thay đổi và cập nhật các View
phù hợp (tiết kiệm cho bạn có 2 hoặc 3 hoặc 4 vv người nghe).
RadioGroup radioGroup = (RadioGroup) findViewById(R.id.yourRadioGroup);
radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener()
{
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
// checkedId is the RadioButton selected
}
});
Hy vọng điều này sẽ giúp bạn ...
RadioButton rb = (RadioButton) findViewById(R.id.yourFirstRadioButton);
rb.setOnClickListener(first_radio_listener);
và
OnClickListener first_radio_listener = new OnClickListener(){
public void onClick(View v) {
//Your Implementaions...
}
};
đôi khi nó rõ ràng hơn để có ba trình xử lý riêng biệt.+1 –
Làm việc như một sự quyến rũ, đừng quên thêm dấu chấm phẩy sau khi dấu ngoặc nhọn cuối cùng của bạn trên trình nghe nhấp chuột vào của bạn – inVINCEable
Bạn cũng có thể thêm người nghe từ bố cục XML: android:onClick="onRadioButtonClicked"
trong thẻ <RadioButton/>
của bạn.
<RadioButton android:id="@+id/radio_pirates"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/pirates"
android:onClick="onRadioButtonClicked"/>
Xem Android developer SDK- Radio Buttons để biết chi tiết.
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();
}
});
Chỉ trong trường hợp ai đó đã struggeling với câu trả lời được chấp nhận:
Có khác nhau OnCheckedChangeListener-giao diện. Tôi đã thêm vào hộp kiểm đầu tiên để xem Hộp kiểm đã được thay đổi chưa.
import android.widget.CompoundButton.OnCheckedChangeListener;
vs
import android.widget.RadioGroup.OnCheckedChangeListener;
Khi thêm đoạn mã từ Ricky Tôi có lỗi:
Phương pháp setOnCheckedChangeListener (RadioGroup.OnCheckedChangeListener) trong các loại RadioGroup không áp dụng cho các đối số (mới CompoundButton.OnCheckedChangeListener() {})
Có thể được cố định với câu trả lời từ Ali:
new RadioGroup.OnCheckedChangeListener()
Câu hỏi đặt ra là về Phát hiện mà nút radio được nhấp, đây là cách bạn có thể nhận được nút mà được nhấp
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;
}
}
});
Vì đây câu hỏi không cụ thể đối với Java, tôi muốn thêm cách bạn có thể làm điều đó trong Kotlin:
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
}
}
})
Đây là radio_group_id
được gán android:id
của RadioGroup có liên quan. Để sử dụng nó theo cách này, bạn sẽ cần phải nhập kotlinx.android.synthetic.main.your_layout_name.*
vào tệp Kotlin của hoạt động của bạn. Cũng lưu ý rằng trong trường hợp tham số lambda radioGroup
không được sử dụng, nó có thể được thay thế bằng _
(dấu gạch dưới) từ Kotlin 1.1.
- 1. Làm thế nào để thiết lập phương pháp ImageView onClicklistener trong Android?
- 2. Làm thế nào để thiết lập hình nền trong android
- 3. Android làm thế nào để thiết lập windowanimation lập trình
- 4. Margin thiết lập trình trên RadioButton không áp dụng
- 5. Android làm thế nào để thiết lập ScrollBar trong Edittext?
- 6. Làm thế nào để thiết lập Android thiết bị ngày/giờ lập trình
- 7. Làm thế nào để thiết lập sự kiện onFling() của cử chỉ trên ScrollView trong Android?
- 8. làm thế nào để thiết lập nút radio kiểm tra như mặc định trong RadioGroup với Android
- 9. OnClickListener trong Android Studio
- 10. Làm thế nào để thiết lập bóng nút Android thay vì thiết lập bóng văn bản
- 11. Làm thế nào để thiết lập (OAuth token) Authorization header trên một yêu cầu Android OKHTTPClient
- 12. Làm thế nào để tắt WiFi một cách có lập trình trên thiết bị Android?
- 13. Làm thế nào để thiết lập màu nền trên Open GL ES Android
- 14. ListView Android không nổi bật khi một OnClickListener được thiết lập
- 15. Dojo RadioButton, thiết lập một nhóm theo chương trình
- 16. Làm thế nào để thiết lập root_url
- 17. Làm thế nào để thiết lập cookie
- 18. Nút Android onClickListener
- 19. Làm thế nào để thiết lập hình ảnh động để ViewFlipper trong Android?
- 20. Thêm onClickListener trên Default GroupIndicator trong ExpandableListView
- 21. Lấy mảng RadioButton trong RadioGroup trong Android
- 22. JTable trong JScrollPane, làm thế nào để thiết lập nền?
- 23. Làm thế nào để thiết lập nền trong StackPanel
- 24. Làm thế nào để thiết lập từ trong MFMailComposeViewController?
- 25. Làm thế nào để thiết lập một tokenizer trong elasticsearch
- 26. Làm thế nào để thiết lập SplashScreen trong Eclipse?
- 27. Làm thế nào để thiết lập ListView tùy chỉnh trong Fragment android?
- 28. Làm thế nào để thiết lập sys.excepthook để gọi pdb trên toàn cầu trong python?
- 29. Làm thế nào để thiết lập đúng Gradle trong Android Studio cho ActionBarSherlock?
- 30. Làm thế nào để thiết lập chiều cao tối đa với nội dung bọc trong android?
Đã không hoạt động đối với tôi, Eclipse đã đề xuất tôi thêm @Override và cố định. Cảm ơn –
yea Tôi sẽ sử dụng radiogroup ngoại trừ nó doesnt làm việc trừ khi nó trực tiếp cha mẹ trong xml và tôi không thể giữ nó như là một phụ huynh trực tiếp kể từ này radiobutton ngu ngốc không thể được liên kết với trung tâm vì vậy tôi đã phải kèm theo nó trong một linearlayout ... –
bạn có thể thử định tâm radio bằng cách đặt ** android: gravity = "center" ** vào xml dưới thẻ RadioGroup. @RudolfRein – OuuGiii