首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何区分Switch、Checkbox值是由用户更改还是以编程方式(包括通过保留)更改?

如何区分Switch、Checkbox值是由用户更改还是以编程方式(包括通过保留)更改?
EN

Stack Overflow用户
提问于 2012-02-03 22:05:58
回答 15查看 32.6K关注 0票数 121
代码语言:javascript
复制
setOnCheckedChangeListener(new OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                // How to check whether the checkbox/switch has been checked
                // by user or it has been checked programatically ?

                if (isNotSetByUser())
                    return;
                handleSetbyUser();
            }
        });

如何实现方法isNotSetByUser()

EN

回答 15

Stack Overflow用户

发布于 2012-02-03 22:16:16

也许你可以检查一下isShown()?如果为TRUE -则为user。这对我很有效。

代码语言:javascript
复制
setOnCheckedChangeListener(new OnCheckedChangeListener() {
    @Override
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        if (myCheckBox.isShown()) {// makes sure that this is shown first and user has clicked/dragged it
                  doSometing();
        }
    }
});
票数 36
EN

Stack Overflow用户

发布于 2017-10-06 18:16:18

onCheckedChanged()中,只需检查用户是否确实已经checked/unchecked了单选按钮,然后按如下所示执行相应的操作:

代码语言:javascript
复制
mMySwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
 @Override
 public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
   if (buttonView.isPressed()) {
       // User has clicked check box
    }
   else
    {
       //triggered due to programmatic assignment using 'setChecked()' method.   
    }
  }
});
票数 28
EN

Stack Overflow用户

发布于 2015-07-06 23:13:07

您可以在以编程方式更改侦听器之前删除它,然后重新添加它,如以下SO post中所述:

https://stackoverflow.com/a/14147300/1666070

代码语言:javascript
复制
theCheck.setOnCheckedChangeListener(null);
theCheck.setChecked(false);
theCheck.setOnCheckedChangeListener(toggleButtonChangeListener);
票数 26
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9129858

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档