Jika grup radio Anda ditentukan dalam file layout xml, setiap tombol dapat diberi id. Kemudian Anda tinggal mencentang tombol seperti ini
radioGroup.check(R.id.myButtonId);
Jika Anda membuat grup radio secara terprogram (saya bahkan tidak yakin bagaimana Anda melakukannya ...), Anda mungkin ingin mempertimbangkan untuk membuat file xml layout khusus hanya untuk grup radio tersebut sehingga Anda dapat menetapkan R.id. * ids ke tombol.
Silakan lihat jawaban di bawah ini jika Anda sebenarnya ingin mengatur kelompok tombol radio menurut indeks, lihat jawaban di bawah.
((RadioButton)radioGroup.getChildAt(index)).setChecked(true);
check
metode tersebut.Pertanyaan mengatakan "set selected INDEX", berikut cara mengaturnya dengan indeks:
((RadioButton)radioGroup.getChildAt(index)).setChecked(true);
........
Info tambahan: Tampaknya Google ingin Anda menggunakan id daripada indeks, karena menggunakan id lebih banyak bukti bug. Misalnya, jika Anda memiliki elemen UI lain di RadioGroup Anda, atau jika pengembang lain memesan ulang RadioButtons, indeks mungkin berubah dan tidak seperti yang Anda harapkan. Tetapi jika Anda satu-satunya pengembang, ini tidak masalah.
sumber
Jawaban Siavash benar:
((RadioButton)radioGroup.getChildAt(index)).setChecked(true);
Namun ketahuilah bahwa radioGroup dapat berisi tampilan selain radioButtons - seperti contoh ini yang menyertakan garis samar di bawah setiap pilihan.
<RadioGroup android:id="@+id/radioKb" android:layout_width="wrap_content" android:layout_height="wrap_content" > <RadioButton android:id="@+id/kb1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceLarge" android:button="@null" android:drawableRight="@android:drawable/btn_radio" android:text="Onscreen - ABC" /> <View android:layout_width="fill_parent" android:layout_height="1dp" android:background="#33000000" /> <RadioButton android:id="@+id/kb2" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceLarge" android:button="@null" android:drawableRight="@android:drawable/btn_radio" android:text="Onscreen - Qwerty" /> <View android:layout_width="fill_parent" android:layout_height="1dp" android:background="#33000000" /> <RadioButton android:id="@+id/kb3" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceLarge" android:button="@null" android:drawableRight="@android:drawable/btn_radio" android:text="Standard softkey" /> <View android:layout_width="fill_parent" android:layout_height="1dp" android:background="#33000000" /> <RadioButton android:id="@+id/kb4" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceLarge" android:button="@null" android:drawableRight="@android:drawable/btn_radio" android:text="Physical keyboard" /> <View android:layout_width="fill_parent" android:layout_height="1dp" android:background="#33000000" /> </RadioGroup>
Dalam hal ini menggunakan indeks 1, misalnya, akan menghasilkan error. Item di indeks 1 adalah baris pemisah pertama - bukan radioButton. RadioButtons dalam contoh ini berada pada indeks 0, 2, 4, 6.
sumber
Anda dapat melakukan findViewById dari grup radio.
((RadioButton)my_radio_group.findViewById(R.id.radiobtn_veg)).setChecked(true);`
sumber
Ini Bekerja Bagi saya, saya membuat tombol radio secara dinamis oleh
private void createRadioButton() { RadioButton[] rb = new RadioButton[5]; RadioGroup.LayoutParams layoutParams = new RadioGroup.LayoutParams( ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT, 1.0f); radioGroup.setOrientation(RadioGroup.HORIZONTAL); for (int ID = 0; ID < 5; ID++) { rb[ID] = new RadioButton(this); rb[ID].setLayoutParams(layoutParams); rb[ID].setText("Button_Text"); radioGroup.addView(rb[ID]); //the RadioButtons are added to the radioGroup instead of the layout } }
Sekarang Periksa tombol menggunakan,
int radio_button_Id = radioGroup.getChildAt(index).getId(); radioGroup.check( radio_button_Id );
sumber
Di dalam onBindViewHolder, setel tag ke Grup Tombol
@Override public void onBindViewHolder(final CustomViewHolder holder, final int position) { ... holder.ButtonGroup.setTag(position); }
dan di ViewHolder
ButtonGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup radioGroup, int checkedId) { ... int id = radioGroup.getCheckedRadioButtonId(); RadioButton radioButton = (RadioButton) radioGroup.findViewById(id); int clickedPos = (Integer) radioGroup.getTag(); packageModelList.get(clickedPos).getPoll_quest() }
sumber
Menggunakan Kotlin, Anda dapat melakukannya
(radio_group_id.getChildAt(index) as RadioButton).isChecked = true
atau
radio_group_id.check(R.id.radio_button_id
)sumber