Кнопка переключения Android
Это мой код:
tglSwitch.setOnCheckedChangeListener(new OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
int t= isChecked ? 1 : 0;
Log.i("t",t);
}
}
когда пользователь проверяет или снимает флажок с переключателя, запускается приведенный выше код, и когда я тоже использую этот код.
tglSwitch.setChecked(true);
Как я могу обнаружить OnCheckedChangeListener() только тогда, когда пользователь делает это?
1 ответ
Вы должны отслеживать это с помощью отдельной переменной
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 для изменения пользователя.