【问题标题】:Android - uncheck a SwitchPreference when it has been toggled on?Android - 打开 SwitchPreference 时取消选中它?
【发布时间】: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)
  • 这不是我想要的。

标签: android switchpreference


【解决方案1】:

解决办法是return false;而不是true

【讨论】:

    猜你喜欢
    • 2019-05-02
    • 1970-01-01
    • 1970-01-01
    • 2014-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多