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

روش Compose را امتحان کنید
Jetpack Compose جعبه ابزار UI توصیه شده برای اندروید است. با نحوه افزودن کامپوننت در Compose آشنا شوید.

دکمه های رادیویی به کاربر این امکان را می دهند که یک گزینه را از میان مجموعه ای از گزینه های منحصر به فرد متقابل انتخاب کند. اگر کاربر نیاز دارد همه گزینه های موجود را مشاهده کند، از دکمه های رادیویی استفاده کنید. اگر لازم نیست همه گزینه ها را نشان دهید، به جای آن از اسپینر استفاده کنید.

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

برای ایجاد هر گزینه دکمه رادیویی، یک 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 چاپ می‌شود.