Cómo agregar botones de selección a tu app

Prueba el estilo de Compose
Jetpack Compose es el kit de herramientas de IU recomendado para Android. Aprende a agregar componentes en Compose.

Los botones de selección permiten al usuario elegir una opción de un conjunto de opciones mutuamente excluyentes. Usa botones de selección si el usuario necesita ver todas las opciones disponibles enumeradas. Si no es necesario mostrar todas las opciones, usa un ícono giratorio en su lugar.

Un ejemplo de botones de selección de material.io
Figura 1: Un ejemplo de botones de selección de Material Design.

Para crear cada opción del botón de selección, crea un RadioButton en tu diseño. Debido a que los botones de selección son mutuamente excluyentes, agrúpalos dentro de un RadioGroup. El sistema garantiza que solo se pueda elegir un botón de selección dentro de un grupo a la vez.

Cómo responder a eventos de clic

Cuando el usuario selecciona un botón de selección, el objeto RadioButton correspondiente recibe un evento de clic.

En el siguiente ejemplo, se muestra una reacción cuando un usuario presiona un objeto RadioButton en un grupo:

<?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>

Dentro de la Activity o Fragment que aloja este diseño, busca tus botones de selección y configura un objeto de escucha de cambios para cada uno de la siguiente manera:

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");
}

En este ejemplo, cuando el usuario presiona uno de los botones de selección, se imprime un mensaje en Logcat.