תיבות סימון מאפשרות למשתמש לבחור אפשרות אחת או יותר מתוך קבוצה. בדרך כלל, כדאי להציג את האפשרויות בתיבות סימון ברשימה אנכית.
כדי ליצור כל אפשרות של תיבת סימון, יוצרים 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 בכל פעם שסטטוס התיבות הסימון משתנה.