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, as opções de caixas de seleção são apresentadas em uma lista vertical.

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

Para definir cada opção de caixa de seleção, crie um CheckBox no seu layout. Como um conjunto de opções permite que o usuário selecione vários itens, cada caixa é gerenciada separadamente, e você precisa registrar um listener de clique para cada uma.

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 as visualizações CheckBox e defina um listener de mudança, como no exemplo abaixo:

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.