Saya telah membuat RadioGroup
dan RadioButton
secara dinamis sebagai berikut:
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);
Di sini langkah radioBtn2.setChecked(true);
penyebab radioBtn2
selalu dicentang. Itu berarti saya tidak dapat menghapus centang radioBtn2
dengan memeriksa dua tombol radio lainnya ( radioBtn1
, radioBtn3
). Saya ingin membuatnya yang RadioGroup
hanya dapat memeriksa satu tombol radio pada satu waktu (Sekarang ia dapat memeriksa dua tombol radio sekaligus).
Bagaimana saya bisa menyelesaikan masalah ini?
android
radio-button
radio-group
Sandy
sumber
sumber
Jawaban:
Anda harus memeriksa radiobutton di radiogroup seperti ini:
radiogroup.check(IdOfYourButton)
Tentu saja pertama-tama Anda harus menetapkan Id ke tombol radio Anda
EDIT: saya lupa,
radioButton.getId()
bekerja juga, thx RameshEDIT2:
bekerja di xml radiogroup
sumber
RadioButton
dan Anda tahu indeks Anda dapat menggunakan (RadioButton) radioGroup.getChildAt (INDEX)). setChecked (true);setChecked()
One way akan menjadiradiogroup.check(((RadioButton)radioGroup.getChildAt(INDEX)).getId())
atau sesuatu seperti ituradioGroup.Check(radioGroup.GetChildAt(0).Id);
untuk pengguna Xamarin. AndroidDalam hal atribut xml-nya
android:checkedButton
yang mengambilid
dariRadioButton
untuk diperiksa.sumber
Di file XML setel
android:checkedButton
bidang di AndaRadioGroup
, dengan id default AndaRadioButton
:sumber
sumber
sumber
setChecked()
setelah semua tombol radio telah ditambahkan ke grup radio. Maka,radioGroup.check(radioBtn2.getId())
tidak perluAda masalah yang sama dalam kode Kolega saya. Ini terdengar karena Grup Radio Anda tidak diatur dengan benar dengan Tombol Radio Anda. Inilah alasan mengapa Anda dapat memilih banyak tombol radio. Saya mencoba banyak hal, akhirnya saya melakukan trik yang salah sebenarnya, tetapi berfungsi dengan baik.
Di sini saya menetapkan satu untuk loop, yang memeriksa tombol radio yang tersedia dan menghapus semua tombol kecuali yang baru diklik. Cobalah.
sumber
Tambahkan
android:checked = "true"
aktivitas Anda.xmlsumber
Ini bug dari RadioGroup
radioBtn2 tanpa viewId, dan generateViewId ada di onChildViewAdded ()
jadi, pertama radioGroup.addView (radioBtn2), kemudian radioBtn2.setChecked (true);
Seperti ini:
sumber