📅  最后修改于: 2023-12-03 15:02:32.437000             🧑  作者: Mango
在 Kotlin 中,RadioGroup 是一种可用于显示一组选项的用户界面控件。它允许用户在给定的选项中选择一个,所有选项都列在一个垂直列表中。
在 XML 中,可以使用以下标记定义 RadioGroup:
<RadioGroup
android:id="@+id/my_radio_group"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<RadioButton
android:id="@+id/radio_button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Option 1" />
<RadioButton
android:id="@+id/radio_button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Option 2" />
<RadioButton
android:id="@+id/radio_button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Option 3" />
</RadioGroup>
在编写程序时,可以使用以下代码创建一个 RadioGroup 布局并将其添加到现有的 ViewGroup 中:
val myRadioGroup = RadioGroup(context)
myRadioGroup.orientation = RadioGroup.VERTICAL
val radioButton1 = RadioButton(context)
radioButton1.id = View.generateViewId()
radioButton1.text = "Option 1"
val radioButton2 = RadioButton(context)
radioButton2.id = View.generateViewId()
radioButton2.text = "Option 2"
val radioButton3 = RadioButton(context)
radioButton3.id = View.generateViewId()
radioButton3.text = "Option 3"
myRadioGroup.addView(radioButton1)
myRadioGroup.addView(radioButton2)
myRadioGroup.addView(radioButton3)
val layoutParams = LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)
layoutParams.setMargins(0, 0, 0, 16)
myRadioGroup.layoutParams = layoutParams
myViewGroup.addView(myRadioGroup)
可以使用以下代码获取设置用于 RadioGroup 的选项:
val selectedId = myRadioGroup.checkedRadioButtonId
val radioButton1 = findViewById<RadioButton>(R.id.radio_button1)
val radioButton2 = findViewById<RadioButton>(R.id.radio_button2)
val radioButton3 = findViewById<RadioButton>(R.id.radio_button3)
radioButton1.isChecked = false
radioButton2.isChecked = false
radioButton3.isChecked = false
if (selectedId == radioButton1.id) {
radioButton1.isChecked = true
} else if (selectedId == radioButton2.id) {
radioButton2.isChecked = true
} else if (selectedId == radioButton3.id) {
radioButton3.isChecked = true
}
以下是设置 RadioGroup 的一些常见布局参数:
| 属性名称 | 描述 | | ------------------- | ------------------------------------------------------------ | | android:checkedButton | 默认选中的 RadioButton | | android:divider | RadioGroup 中 RadioButton 之间的分隔线颜色或图像。 | | android:gravity | RadioButtons 的对齐方式。默认值是“start”。可以设置为“start”、“center”、“end”、“center_vertical”或“fill_vertical”。 | | android:orientation | 列出 RadioButton 的方式。可以设置为“vertical”或“horizontal”。 | | android:onCheckedChangeListener | RadioGroup 的状态更改时要调用的方法。 |
RadioGroup 是一种很有用的用户界面控件,它可以方便地为用户提供一组选项,并且在 Kotlin 中创建和使用 RadioGroup 非常简单。