Adicionar caixas de seleção ao app

Experimente trabalhar com o Compose
O Jetpack Compose é o kit de ferramentas de IU recomendado para Android. Saiba como 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 caixa 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. Um exemplo de caixas de seleção de caixa de seleção do Material Design.

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

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 sua Activity ou Fragment, encontre as visualizações 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 imprime uma mensagem no Logcat sempre que as caixas de seleção mudam de status.