Adicionar caixas de seleção ao app

Teste 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, você apresenta opções de caixas 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 da Caixa de seleção do Material Design.

Para definir cada opção de caixa de seleção, crie um CheckBox no layout. Como um conjunto de opções permite que o usuário selecione vários itens, cada caixa de seleção é gerenciada separadamente, e é necessário registrar um listener de cliques 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.