เพิ่มช่องทำเครื่องหมายลงในแอปของคุณ

ลองใช้วิธีเขียน
Jetpack Compose เป็นชุดเครื่องมือ UI ที่แนะนำสำหรับ Android ดูวิธีเพิ่มคอมโพเนนต์ใน Compose

ช่องทําเครื่องหมายช่วยให้ผู้ใช้เลือกตัวเลือกจากชุดตัวเลือกได้อย่างน้อย 1 รายการ โดยทั่วไป คุณนำเสนอตัวเลือกช่องทำเครื่องหมายในรายการแนวตั้ง

รูปภาพแสดงตัวอย่างช่องทําเครื่องหมายจาก 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>

เมื่อเลย์เอาต์พร้อมแล้ว ให้ไปที่ Activity หรือ Fragment แล้วค้นหามุมมอง 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 ทุกครั้งที่ช่องทําเครื่องหมายเปลี่ยนสถานะ