Переключатели позволяют пользователю выбрать один вариант из набора взаимоисключающих вариантов. Используйте переключатели, если пользователю нужно видеть все доступные варианты. Если показывать все варианты не обязательно, используйте спиннер.
Чтобы создать каждый вариант переключателя, создайте RadioButton в макете. Поскольку переключатели являются взаимоисключающими, сгруппируйте их внутри элемента RadioGroup.
Система гарантирует, что в группе может быть выбран только один переключатель.
Реагирование на события кликов
Когда пользователь выбирает переключатель, соответствующий объект RadioButton получает событие клика.
В примере ниже показана реакция на нажатие пользователем объекта RadioButton в группе.
<?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>
Внутри Activity или Fragment, где размещен этот макет, найдите переключатели и установите для каждого из них прослушиватель изменений, как показано ниже.
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"); }
В этом примере, когда пользователь нажимает один из переключателей, в Logcat выводится сообщение.