onCheckedChangeListener

onCheckedChangeListener

这是我的代码:

tglSwitch.setOnCheckedChangeListener(new  OnCheckedChangeListener() {

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


当用户选中或取消选中切换按钮时,以上代码将运行,并且当我也使用此代码时。

tglSwitch.setChecked(true);


仅在用户执行时,如何才能检测到OnCheckedChangeListener()?

最佳答案

您应该使用一个单独的变量来跟踪它

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;
}


这样,您可以确定谁实际检查了变量(是否检查系统)。您也可以将变量设置为一个变量,并将其用于系统更改为-1或用户更改为1。

关于java - Android切换按钮更改状态,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28902107/

10-10 11:05