Adicionar caixas de seleção ao app

Testar o Compose
O Jetpack Compose é o kit de ferramentas de interface recomendado para Android. Aprenda a adicionar componentes no Compose.

As caixas de seleção permitem que o usuário selecione uma ou mais opções de um conjunto. Normalmente, há uma caixa de seleção em uma lista vertical.

Uma imagem mostrando um exemplo de caixas de seleção do material.io
Figura 1. Um exemplo de caixas de seleção de Caixa de seleção do Material Design.

Para criar cada opção de caixa de seleção, crie um CheckBox no seu layout. Devido ao um conjunto de opções de caixas de seleção permite que o usuário selecione vários itens. Cada caixa de seleção é gerenciada separadamente; e é necessário registrar um listener de clique para cada um.

Responder a eventos de clique

Comece criando um layout com objetos CheckBox em uma lista:

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

Quando o layout estiver pronto, acesse Activity ou Fragment, encontre seu CheckBox e defina um listener de mudança, como no exemplo a seguir:

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

O código anterior mostra uma mensagem no Logcat sempre que as caixas de seleção mudam de status.