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