افزودن دکمه‌های رادیویی به برنامه

امتحان کردن روش Compose
Jetpack Compose جعبه‌ابزار واسط کاربر توصیه‌شده برای Android است. با نحوه افزودن مؤلفه‌ها در Compose آشنا شوید.

دکمه‌های رادیویی به کاربر اجازه می‌دهند یک گزینه را از مجموعه‌ای از گزینه‌های ناسازگار انتخاب کند. اگر کاربر باید همه گزینه‌های موجود را در فهرست ببیند، از دکمه‌های رادیویی استفاده کنید. اگر لازم نیست همه گزینه‌ها نشان داده شود، به‌جای آن از چرخاننده استفاده کنید.

نمونه‌ای از دکمه‌های رادیویی از material.io
شکل ۱. نمونه‌ای از دکمه‌های رادیویی از طراحی مواد.

برای ایجاد هر گزینه دکمه رادیویی، یک RadioButton در چیدمانتان ایجاد کنید. چون دکمه‌های رادیو به‌صورت متقابل انحصاری‌اند، آن‌ها را در RadioGroup گروه‌بندی کنید. سیستم تضمین می‌کند که در هر زمان فقط یک دکمه رادیویی در یک گروه قابل انتخاب باشد.

پاسخ دادن به رویدادهای کلیک

وقتی کاربر دکمه رادیویی را انتخاب می‌کند، شیء RadioButton مربوطه رویداد کلیک را دریافت می‌کند.

مثال زیر واکنشی را به ضربه زدن کاربر روی شیء 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 که میزبان این چیدمان است، دکمه‌های رادیویی را پیدا کنید و برای هرکدام از آن‌ها یک شنونده تغییر تنظیم کنید، به‌صورت زیر:

کاتلین

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")
}

جاوا

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 چاپ می‌شود.