Android CheckBoxPreference - снимите / отметьте все настройки

У меня есть PreferenceScreen , содержащий только CheckBoxPreferences (категории для выбора). Мне нужна возможность отмечать / снимать отметки со всех. У меня есть следующий код, который выполняет эту работу, но есть одна проблема: флажки на экране не обновляются - мне нужно вызвать некоторую недействительность в представлении или что-то в этом роде.

Вот мой текущий код:

    private void checkAll() {
        SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);
        SharedPreferences.Editor editor = settings.edit();
        @SuppressWarnings("unchecked")
        Map<String, Boolean> categories = (Map<String, Boolean>) settings.getAll();
        for(String s : categories.keySet()) {
            editor.putBoolean(s, true);
        }
        editor.commit();
    }

    private void uncheckAll() {
        SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);
        SharedPreferences.Editor editor = settings.edit();
        @SuppressWarnings("unchecked")
        Map<String, Boolean> categories = (Map<String, Boolean>) settings.getAll();
        for(String s : categories.keySet()) {
            editor.putBoolean(s, false);
        }
        editor.commit();
        this.restart();
    }

Это код работает нормально, но мне нужно как-то обновить представление, чтобы сразу увидеть результат (не только после закрытия и повторного запуска действия настроек).

Спасибо всем за любой совет!

6
задан shadyyx 2 May 2011 в 23:12
поделиться