Добавьте переключатели в свое приложение

Попробуйте способ создания
Jetpack Compose — рекомендуемый набор инструментов пользовательского интерфейса для Android. Узнайте, как добавлять компоненты в Compose.

Радиокнопки позволяют пользователю выбрать один вариант из набора взаимоисключающих вариантов. Используйте переключатели, если пользователю необходимо просмотреть все доступные параметры в списке. Если нет необходимости отображать все параметры, используйте вместо этого счетчик .

Пример радиокнопок с сайта Material.io
Рисунок 1. Пример переключателей из Material Design .

Чтобы создать каждый вариант переключателя, создайте 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 печатается сообщение.