Tombol pilihan memungkinkan pengguna memilih satu opsi dari serangkaian opsi yang sama-sama eksklusif. Gunakan tombol pilihan jika pengguna perlu melihat semua opsi yang tersedia yang tercantum. Jika tidak perlu menampilkan semua opsi, gunakan spinner.
Untuk membuat setiap opsi tombol pilihan, buat
RadioButton
dalam tata letak Anda. Karena tombol pilihan saling eksklusif, kelompokkan tombol tersebut di dalam
RadioGroup
.
Sistem memastikan bahwa hanya satu tombol pilihan dalam grup yang dapat dipilih dalam satu waktu.
Merespons peristiwa klik
Saat pengguna memilih tombol pilihan, objek
RadioButton
yang sesuai akan menerima peristiwa klik.
Contoh berikut menunjukkan reaksi terhadap pengguna yang mengetuk
objek RadioButton
dalam grup:
<?xml version="1.0" encoding="utf-8"?> <RadioGroup android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <RadioButton android:id="@+id/radio_pirates" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Pirates"/> <RadioButton android:id="@+id/radio_ninjas" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Ninjas"/> </RadioGroup>
Dalam Activity
atau Fragment
yang menghosting tata letak
ini, temukan tombol pilihan dan tetapkan pemroses perubahan untuk setiap tombol, seperti
berikut:
Kotlin
findViewById<RadioButton>(R.id.radio_pirates).setOnCheckedChangeListener { buttonView, isChecked -> Log.d("RADIO", "Pirates is checked: $isChecked") } findViewById<RadioButton>(R.id.radio_ninjas).setOnCheckedChangeListener { buttonView, isChecked -> Log.d("RADIO", "Ninjas is checked: $isChecked") }
Java
findViewById<RadioButton>(R.id.radio_pirates).setOnCheckedChangeListener { buttonView, isChecked -> Log.d("RADIO", "Pirates is checked: $isChecked"); } findViewById<RadioButton>(R.id.radio_ninjas).setOnCheckedChangeListener { buttonView, isChecked -> Log.d("RADIO", "Ninjas is checked: $isChecked"); }
Dalam contoh ini, saat pengguna mengetuk salah satu tombol pilihan, pesan akan dicetak di Logcat.