Android MultiSelectListPreference uncheck does not fire SharedPreferenceChanged

爱⌒轻易说出口 提交于 2019-12-05 11:28:47
Calin Martinconi

I am dealing with the same issue. From SDK 18 all thing seems to work fine but in rest, I have same issue like you.

I found a solution that seems to work for me:

    MultiSelectListPreference multiSelectListPref = (MultiSelectListPreference) findPreference("pref_name");
    if (multiSelectListPref != null) {
        multiSelectListPref.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
            @Override
            public boolean onPreferenceChange(Preference preference, Object newValue) {
                MultiSelectListPreference mpreference = (MultiSelectListPreference) preference;
                mpreference.setSummary(newValue.toString());
                mpreference.setValues((Set<String>) newValue);
                return true;
            }
        });
    }

maybe it is useful for your cases too

Since SDK level 18, it started working as expected. Apparently, it s (or was) a bug in the sdks prior to this version. Worth noting.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!