Ajouter des cases à cocher à votre application

Essayer Compose
Jetpack Compose est le kit d'outils d'UI recommandé pour Android. Découvrez comment ajouter des composants dans Compose.

Les cases à cocher permettent à l'utilisateur de sélectionner une ou plusieurs options dans un ensemble. En règle générale, vous présentez les options de case à cocher dans une liste verticale.

Image montrant un exemple de cases à cocher de material.io
Figure 1 : Exemple de cases à cocher de la case à cocher Material Design.

Pour créer chaque option de case à cocher, créez un CheckBox dans votre mise en page. Étant donné qu'un ensemble d'options de case à cocher permet à l'utilisateur de sélectionner plusieurs éléments, chaque case à cocher est gérée séparément et vous devez enregistrer un écouteur de clic pour chacune d'elles.

Répondre aux événements de clic

Commencez par créer une mise en page avec des objets CheckBox dans une liste:

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

Une fois votre mise en page prête, accédez à Activity ou Fragment, recherchez vos vues CheckBox et définissez un écouteur de modification, comme dans l'exemple suivant:

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

Le code précédent imprime un message dans Logcat chaque fois que les cases changent d'état.