Android togglebutton改变状态

时间:2015-03-06 15:31:38

标签: java android togglebutton

这是我的代码:

tglSwitch.setOnCheckedChangeListener(new  OnCheckedChangeListener() {

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

当用户选中或取消选中togglebutton时,上面的代码将会运行,当我也使用此代码时。

tglSwitch.setChecked(true);

我只有在用户这样做时才能检测到OnCheckedChangeListener()?

1 个答案:

答案 0 :(得分:0)

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

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表示用户已更改。