为应用添加复选框

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

复选框可让用户从选项集中选择一个或多个选项。通常,您可以在垂直列表中显示复选框选项。

图片中显示了 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 中输出一条消息。