دکمه های رادیویی را به برنامه خود اضافه کنید

روش نوشتن را امتحان کنید
Jetpack Compose ابزار رابط کاربری پیشنهادی برای اندروید است. یاد بگیرید که چگونه کامپوننت‌ها را در 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 که میزبان این layout است، دکمه‌های رادیویی خود را پیدا کنید و برای هر یک از آنها یک شنونده تغییر (change listener) به صورت زیر تنظیم کنید:

کاتلین

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