Android Switch 兼容状态问题

标签 android switchcompat

UI Sample

我想从父开关更改子开关的状态。

简而言之:

情况 1:父打开 -> 所有子打开

case 2: Parent off -> all Child switches off

情况 3:子 2 关闭(子 1 和 3 打开)-> 父打开

Issue When i on/off all child switches Parent switch should on/off accordingly.

下面是我的代码 在代码案例 1、2 和 3 中工作正常。

switchParent.setOnCheckedChangeListener(新 CompoundButton.OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(CompoundButton compoundButton, boolean b) {

            if (b) {

                switchChild1.setChecked(true);
                switchChild2.setChecked(true);
                switchChild3.setChecked(true);

            } else {

                switchChild1.setChecked(false);
                switchChild2.setChecked(false);
                switchChild3.setChecked(false);

            }
        }
    }); switchChild1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
            setState();
        }
    });

    switchChild2.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
            setState();
        }
    });


    switchChild3.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
            setState();
        }
    });

setState()

私有(private)无效 setState() {

   if (switchChild1.isChecked() || switchChild2.isChecked() || switchChild3.isChecked()) {

        switchParent.setChecked(true);

    } else {

        switchParent.setChecked(false);

    }

}

我将不胜感激任何帮助。

最佳答案

更改您的 setState() 方法。

private void setState() {
if (switchChild1.isChecked() && switchChild2.isChecked() && switchChild3.isChecked()) {
    switchParent.setChecked(true);
} else {
    switchParent.setChecked(false);
}

关于Android Switch 兼容状态问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34939629/

相关文章:

java - Android OkHttp 库 : GET Request - Exception EOFException:\n not found: size=0 content=

java - Android:如何在特定时间后调用特定方法?

android - 显示以设置在 SwitchCompat 处于关闭状态时可见的文本?

android - 如何从 android 中的 Activity 切换 ListView 适配器中的哪个定义?

android - 带文字的 Lollipop 开关看起来不太好

Android - 录制视频时在前后摄像头之间切换

java - 创建表时出现 Android SqLite 异常

java - Android firebase getDownloadUrl();无法解析符号

android - onCheckedChanged 自动调用

java - Android SwitchCompat 拇指未对齐