ช่องทําเครื่องหมายช่วยให้ผู้ใช้เลือกตัวเลือกจากชุดตัวเลือกได้อย่างน้อย 1 รายการ โดยทั่วไป คุณนำเสนอตัวเลือกช่องทำเครื่องหมายในรายการแนวตั้ง
หากต้องการสร้างตัวเลือกช่องทําเครื่องหมายแต่ละรายการ ให้สร้าง
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 ทุกครั้งที่ช่องทําเครื่องหมายเปลี่ยนสถานะ