单选按钮可让用户从一组互斥的选项中选择一个选项。如果用户需要看到列出的所有可用选项,请使用单选按钮。如果没必要显示所有选项,则应改用微调框。
要创建各个单选按钮选项,请在布局中创建一个 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 内,找到单选按钮并为每个单选按钮设置一个更改监听器,如下所示:
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 中会输出一条消息。