这是我的代码:
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()?
答案 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表示用户已更改。