【问题标题】:Android Material Button Toggle Group - Check None SelectedAndroid Material Button Toggle Group - Check None Selected
【发布时间】:2020-04-02 08:06:08
【问题描述】:
我使用MaterialButtonToggleGroup 进行单选(一次只检查一个按钮)。如何检查是否没有选中任何按钮?
toggleGroup?.addOnButtonCheckedListener { group, checkedId, isChecked ->
if (isChecked) {
when (checkedId) {
R.id.first_materialButton -> {
// do something when selected
}
R.id.second_materialButton -> {
// do something when selected
}
}
}
}
【问题讨论】:
标签:
android
android-button
material-components-android
material-components
android-togglebutton
【解决方案1】:
解决方案是从 isChecked 的 else 分支上的组中获取 checkedButtonId,如果值为 -1,则不选择任何按钮。
toggleGroup?.addOnButtonCheckedListener { group, checkedId, isChecked ->
if (isChecked) {
when (checkedId) {
R.id.first_materialButton -> {
// do something when selected
}
R.id.second_materialButton -> {
// do something when selected
}
}
} else {
if (group.checkedButtonId == View.NO_ID) {
// do something when nothing selected
}
}
}
【解决方案2】:
如果您需要监听器,请查看@Laura's answer。
否则你可以使用 getCheckedButtonIds() 方法:
List<Integer> ids = materialButtonToggleGroup.getCheckedButtonIds();
if (ids.size() == 0){
//Case unckecked
}
如果您想要求单个选择,您可以使用app:singleSelection="true" 属性:
<com.google.android.material.button.MaterialButtonToggleGroup
app:selectionRequired="true"
app:singleSelection="true"
..>
此属性要求最低版本为1.2.0-alpha03。