Aggiungere caselle di controllo alla tua app

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

Le caselle di controllo consentono all'utente di selezionare una o più opzioni da un gruppo di opzioni. In genere, le opzioni delle caselle di controllo vengono presentate in un elenco verticale.

Un'immagine che mostra un esempio di caselle di controllo di material.io
Figura 1. Un esempio di caselle di controllo da Material Design Checkbox.

Per creare ogni opzione della casella di controllo, crea un CheckBox nel layout. Poiché un insieme di opzioni di caselle di controllo consente all'utente di selezionare più elementi, ogni casella di controllo viene gestita separatamente e devi registrare un listener di clic per ognuna.

Rispondere agli eventi di clic

Inizia creando un layout con oggetti CheckBox in un elenco:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <CheckBox android:id="@+id/checkbox_meat"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Meat" />
    <CheckBox android:id="@+id/checkbox_cheese"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Cheese"/>
</LinearLayout>

Una volta che il layout è pronto, vai all'oggetto Activity o Fragment, trova le visualizzazioni CheckBox e imposta un listener di modifica, come nell'esempio seguente:

Kotlin

findViewById<CheckBox>(R.id.checkbox_meat)
    .setOnCheckedChangeListener { buttonView, isChecked ->
        Log.d("CHECKBOXES", "Meat is checked: $isChecked")
    }

findViewById<CheckBox>(R.id.checkbox_cheese)
    .setOnCheckedChangeListener { buttonView, isChecked ->
        Log.d("CHECKBOXES", "Cheese is checked: $isChecked")
    }

Java

findViewById<CheckBox>(R.id.checkbox_meat)
    .setOnCheckedChangeListener { buttonView, isChecked ->
        Log.d("CHECKBOXES", "Meat is checked: $isChecked");
    }

findViewById<CheckBox>(R.id.checkbox_cheese)
    .setOnCheckedChangeListener { buttonView, isChecked ->
        Log.d("CHECKBOXES", "Cheese is checked: $isChecked");
    }

Il codice precedente stampa un messaggio in Logcat ogni volta che lo stato delle caselle di controllo cambia.