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

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

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

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

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