הוספת תיבות סימון לאפליקציה

רוצה לנסות את שיטת הכתיבה?
'Jetpack פיתוח נייטיב' היא ערכת הכלים המומלצת לממשק המשתמש ל-Android. מידע על הוספת רכיבים לכתיבה.

תיבות סימון מאפשרות למשתמש לבחור אפשרות אחת או יותר מתוך קבוצה. בדרך כלל מציגים תיבת סימון ברשימה אנכית.

תמונה שמציגה דוגמה לתיבות סימון מ-material.io
איור 1. דוגמה לתיבות סימון מתוך תיבת סימון של עיצוב Material Design.

כדי ליצור כל אפשרות של תיבת סימון, יוצרים CheckBox בפריסה שלך. כי קבוצה של אפשרויות תיבות סימון מאפשרת למשתמש לבחור פריטים מרובים, כל תיבת סימון מנוהלת בנפרד, וצריך לרשום אוזן קליקים לכל אחד מהם.

תגובה לאירועים מסוג קליק

כדי להתחיל, צריך ליצור פריסה עם CheckBox אובייקטים ברשימה:

?<xml version="1.0" encoding="utf-8"?>
L<inearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    C<heckBox android:id="@+id/checkbox_meat"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Meat" />
    C<heckBox 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 בכל פעם שהסטטוס של תיבות הסימון משתנה.