我有一个名为aSwitch的Switch。我在setOnCheckedChangeListener中有以下代码:
aSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
if (!compoundButton.isSelected()) {
Log.i("Yeah" , "Is Not Selected");
invertLock(-1);
}
else {
if (Utilities.isLockEnabled(context)) {
Log.i("Yeah" , "Is Locked");
Utilities.showLockEnabled(context);
}
else {
Log.i("Yeah" , "Is Not Locked");
invertLock(1);
}
}
}
});
始终选择Switch的第一个状态= false。当我点击开关时,它被选中= true,我的Logcat显示
I/Yeah: Is Not Selected
然后当选择开关= true,然后关闭时,我的Logcat再次显示
I/Yeah: Is Not Selected
我的代码有问题吗?请帮帮我。
感谢。
答案 0 :(得分:1)
使用compoundButton.isChecked
代替isSelected
。
答案 1 :(得分:1)
试试此代码
aSwitch.setOnCheckedChangeListener(new
CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
if (!b) {
Log.i("Yeah" , "Is Not Selected");
invertLock(-1);
}
else {
if (Utilities.isLockEnabled(context)) {
Log.i("Yeah" , "Is Locked");
Utilities.showLockEnabled(context);
}
else {
Log.i("Yeah" , "Is Not Locked");
invertLock(1);
}
}
}
});