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