Aggiungere pulsanti di opzione all'app

Prova la modalità Scrivi
Jetpack Compose è il toolkit dell'interfaccia utente consigliato per Android. Scopri come aggiungere componenti in Compose.

I pulsanti di opzione consentono all'utente di selezionare un'opzione da un insieme di opzioni che si escludono a vicenda. Utilizza i pulsanti di opzione se l'utente deve visualizzare tutte le opzioni disponibili elencate. Se non è necessario mostrare tutte le opzioni, utilizza un spinner.

Esempio di pulsanti di opzione di material.io
Figura 1. Un esempio di pulsanti di opzione di Material Design.

Per creare ogni opzione di pulsante di opzione, crea un RadioButton nel layout. Poiché i pulsanti di opzione si escludono a vicenda, raggruppali in un elemento RadioGroup. Il sistema garantisce che sia possibile selezionare un solo pulsante di opzione alla volta all'interno di un gruppo.

Rispondere agli eventi di clic

Quando l'utente seleziona un pulsante di opzione, l'oggetto RadioButton corrispondente riceve un evento al clic.

L'esempio seguente mostra una reazione all'utente che tocca un oggetto RadioButton in un gruppo:

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

All'interno dell'elemento Activity o Fragment che ospita questo layout, individua i pulsanti di opzione e imposta un listener di modifiche per ciascuno di essi, come riportato di seguito:

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

In questo esempio, quando l'utente tocca uno dei pulsanti di opzione, viene stampato un messaggio in Logcat.