Android材质按钮切换组-选中未选中

时间:2020-04-02 08:06:08

标签: android android-button material-components-android material-components android-togglebutton

我正在使用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
                }
            }
        }
    }

2 个答案:

答案 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