我正在使用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
}
}
}
}
答案 0 :(得分:5)
解决方案是从checkedButtonId
的else分支上的组中获取isChecked
,如果该值为-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
}
}
}
答案 1 :(得分:0)
如果您需要监听器,请检查@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
。