在应用中添加复选框

尝试 Compose 方式
Jetpack Compose 是推荐的 Android 界面工具包。了解如何在 Compose 中添加组件。

复选框允许用户从一组选项中选择一个或多个。通常,您会在垂直列表中呈现复选框选项。

An image showing an example of checkboxes from material.io
图 1. 摘自 Material Design 复选框 的复选框示例。

要创建每个复选框选项,请在布局中创建一个 CheckBox。由于一组复选框选项允许用户选择多个项目,因此每个复选框都是单独管理的,您必须为每个复选框注册一个点击监听器。

响应点击事件

首先在列表中创建包含 CheckBox 对象的布局

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

布局准备就绪后,前往您的 ActivityFragment 中找到您的 CheckBox 视图,并设置更改监听器,如下例所示

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

之前的代码在复选框状态每次更改时都会在 Logcat 中打印一条消息。