Tombol pilihan memungkinkan pengguna memilih satu opsi dari serangkaian opsi yang saling 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 sama-sama bersifat 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 sebuah 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 Anda 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.