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

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

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

דוגמה לכפתורי בחירה מ-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.