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