美文网首页
Switch 调用 setChecked 触发 setOnChe

Switch 调用 setChecked 触发 setOnChe

作者: yuGodddddd | 来源:发表于2020-03-18 10:58 被阅读0次

当在设置 setOnCheckedChangeListener 之后调用 setChecked方法会触发 setOnCheckedChangeListener 监听.

解决方案

  1. 判断按钮是否被人按下.
mSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                if (!buttonView.isPressed()) {
                    return;
                }
                doSomeThing();
            }
        });

此问题参考StackOverFlow(http://stackoverflow.com/questions/9129858/how-can-i-distinguish-whether-value-is-changed-by-user-or-programmatically-incl

  1. 在设置之前取消监听,设置后添加监听.
mSwitch.setOnCheckedChangeListener(null);
mSwitch.setChecked(true);
mSwitch.setOnCheckedChangeListener(mListener);

相关文章

网友评论

      本文标题:Switch 调用 setChecked 触发 setOnChe

      本文链接:https://www.haomeiwen.com/subject/hklqyhtx.html