kotlin的AppCompatCheckBox单选效果
时间: 2024-05-03 07:18:52 浏览: 208
在 Kotlin 中,可以通过使用 AppCompatCheckBox 和 RadioGroup 来实现单选效果。具体步骤如下:
1. 在布局文件中添加一个 RadioGroup 和多个 AppCompatCheckBox,如下所示:
```
<RadioGroup
android:id="@+id/radioGroup"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<androidx.appcompat.widget.AppCompatCheckBox
android:id="@+id/checkBox1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="选项1"/>
<androidx.appcompat.widget.AppCompatCheckBox
android:id="@+id/checkBox2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="选项2"/>
<androidx.appcompat.widget.AppCompatCheckBox
android:id="@+id/checkBox3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="选项3"/>
</RadioGroup>
```
2. 在 Kotlin 代码中设置 RadioGroup 的监听器,并在监听器中处理单选逻辑,代码如下:
```
val radioGroup = findViewById<RadioGroup>(R.id.radioGroup)
val checkBox1 = findViewById<AppCompatCheckBox>(R.id.checkBox1)
val checkBox2 = findViewById<AppCompatCheckBox>(R.id.checkBox2)
val checkBox3 = findViewById<AppCompatCheckBox>(R.id.checkBox3)
radioGroup.setOnCheckedChangeListener { _, checkedId ->
when (checkedId) {
R.id.checkBox1 -> {
checkBox1.isChecked = true
checkBox2.isChecked = false
checkBox3.isChecked = false
}
R.id.checkBox2 -> {
checkBox1.isChecked = false
checkBox2.isChecked = true
checkBox3.isChecked = false
}
R.id.checkBox3 -> {
checkBox1.isChecked = false
checkBox2.isChecked = false
checkBox3.isChecked = true
}
}
}
```
在监听器中使用 when 表达式判断选中的是哪个 AppCompatCheckBox,然后根据选中的情况设置 AppCompatCheckBox 的 isChecked 属性。这样就可以实现单选效果了。
阅读全文