Aggiungere pulsanti di opzione all'app

Prova Compose
Jetpack Compose è il toolkit UI consigliato per Android. Scopri come aggiungere componenti in Compose.

I pulsanti di opzione consentono all'utente di selezionare un'opzione da un gruppo di opzioni reciprocamente esclusive. Utilizza i pulsanti di opzione se l'utente deve vedere tutte le opzioni disponibili elencate. Se non è necessario mostrare tutte le opzioni, utilizza invece un spinner.

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

Per creare ogni opzione del pulsante di opzione, crea un RadioButton nel layout. Poiché i pulsanti di opzione sono reciprocamente esclusivi, raggruppali all'interno di un 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 di 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'Activity o del Fragment che ospita questo layout, trova i pulsanti di opzione e imposta un listener di modifica per ciascuno di essi, come segue:

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.