הוספת לחצני בחירה לאפליקציה

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

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

דוגמה לכפתורי בחירה מ-material.io
איור 1. דוגמה לכפתורי בחירה מ-Material Design.

כדי ליצור כל אפשרות של לחצן הבחירה, יוצרים RadioButton בפריסה. מכיוון שכפתורי בחירה הם בלעדיים זה לזה, צריך לקבץ אותם בתוך RadioGroup. המערכת מוודאת שאפשר לבחור רק לחצן בחירה אחד בקבוצה בכל פעם.

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

כשהמשתמש בוחר לחצן רדיו, אובייקט RadioButton התואם מקבל אירוע on-click.

בדוגמה הבאה מוצגת תגובה למשתמש שמקיש על אובייקט RadioButton בקבוצה:

<?xml version="1.0" encoding="utf-8"?>
<RadioGroup
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">
    <RadioButton android:id="@+id/radio_pirates"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Pirates"/>
    <RadioButton android:id="@+id/radio_ninjas"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Ninjas"/>
</RadioGroup>

ב-Activity או ב-Fragment שמארחים את הפריסה הזו, מחפשים את לחצני הבחירה ומגדירים מאזין לשינויים לכל אחד מהם, באופן הבא:

Kotlin

findViewById<RadioButton>(R.id.radio_pirates).setOnCheckedChangeListener { buttonView, isChecked ->
    Log.d("RADIO", "Pirates is checked: $isChecked")
}

findViewById<RadioButton>(R.id.radio_ninjas).setOnCheckedChangeListener { buttonView, isChecked ->
    Log.d("RADIO", "Ninjas is checked: $isChecked")
}

Java

findViewById<RadioButton>(R.id.radio_pirates).setOnCheckedChangeListener { buttonView, isChecked ->
    Log.d("RADIO", "Pirates is checked: $isChecked");
}

findViewById<RadioButton>(R.id.radio_ninjas).setOnCheckedChangeListener { buttonView, isChecked ->
    Log.d("RADIO", "Ninjas is checked: $isChecked");
}

בדוגמה הזו, כשהמשתמש מקשיק על אחד מלחצני הבחירה, מודפסת הודעה ב-Logcat.