【发布时间】:2017-01-20 20:28:50
【问题描述】:
我基本上想做以下事情:
switch.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
Boolean newVal = (Boolean) newValue;
if (newVal && Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && !Settings.canDrawOverlays(getApplicationContext())) {
switch.setChecked(false);
displaySettingsDialog();
return true;
}
switch.setChecked(false); 似乎没有执行,当displaySettingsDialog() 发生时开关将打开。我该如何解决这个问题?
【问题讨论】:
-
尝试将 switch 放在 if 语句之外,并使用
setChecked(newVal)。 -
不过,我想将其设置为 false,并且当
newVal为 true 时。 -
如果你想把它设置成
newVal的反面,做setChecked(!newVal) -
这不是我想要的。