دکمه های رادیویی به کاربر این امکان را می دهند که یک گزینه را از میان مجموعه ای از گزینه های منحصر به فرد متقابل انتخاب کند. اگر کاربر نیاز دارد همه گزینه های موجود را مشاهده کند، از دکمه های رادیویی استفاده کنید. اگر لازم نیست همه گزینه ها را نشان دهید، به جای آن از اسپینر استفاده کنید.
برای ایجاد هر گزینه دکمه رادیویی، یک 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 چاپ میشود.