简体   繁体   English

Android切换按钮更改状态

[英]Android togglebutton change state

this is my code: 这是我的代码:

tglSwitch.setOnCheckedChangeListener(new  OnCheckedChangeListener() {

        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
             int  t= isChecked ? 1 : 0;                  
             Log.i("t",t);
    }
}

when the user check or uncheck the togglebutton , the above code will run, and when i use this code too. 当用户选中或取消选中切换按钮时,以上代码将运行,并且当我也使用此代码时。

tglSwitch.setChecked(true);

how can i detect OnCheckedChangeListener() only when user do it? 仅在用户执行时,如何才能检测到OnCheckedChangeListener()?

You should keep track of it with a separate variable 您应该使用一个单独的变量来跟踪它

int userChecked = 0;
int checked = 0;
tglSwitch.setOnCheckedChangeListener(new  OnCheckedChangeListener() {

    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
         int  userChecked= isChecked ? 1 : 0;
         int checked= isChecked? 1:0;    
         Log.i("t",userchecked);
    }
}


if(userChecked == 0){
       tglSwitch.setChecked(true);
       checked = 1;} 
else {
      userChecked = 0;
      tglSwitch.setChecked(true);
      checked = 1;
}

That way you can determine who actually checked the variable (system or not). 这样,您可以确定谁实际检查了变量(是否检查系统)。 You could also set the variable to one variable and use it -1 for system changed or 1 for user changed. 您也可以将变量设置为一个变量,并将其用于系统更改为-1或用户更改为1。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM