Przyciski opcji pozwalają użytkownikowi wybrać jedną z kilku wzajemnie wykluczających się opcji. Używaj przycisków opcji, jeśli użytkownik musi zobaczyć wszystkie dostępne opcje. Jeśli nie jest konieczne wyświetlanie wszystkich opcji, użyj a spinner zamiast.
Aby utworzyć każdą opcję przycisku opcji, utwórz element RadioButton w układzie. Ponieważ przyciski opcji wzajemnie się wykluczają, zgrupuj je w elemencie RadioGroup.
System dba o to, aby w danej chwili można było wybrać tylko jeden przycisk opcji w grupie.
Reagowanie na zdarzenia kliknięcia
Gdy użytkownik wybierze przycisk opcji, odpowiedni obiekt RadioButton otrzyma zdarzenie kliknięcia.
Poniższy przykład pokazuje reakcję na naciśnięcie przez użytkownika obiektu RadioButton w grupie:
<?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>
W obrębie Activity lub Fragment, który zawiera ten układ, znajdź przyciski opcji i ustaw dla każdego z nich detektor zmian w ten sposób:
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"); }
W tym przykładzie, gdy użytkownik naciśnie jeden z przycisków opcji, w Logcat zostanie wyświetlony komunikat.