这是我的代码:
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/