Как обновить сводку предпочтений из вложенных предпочтений - PullRequest
0 голосов
/ 08 февраля 2011

Я не могу решить эту проблему.У меня есть экран настроек, и есть суб-настройки, которые открывают другой экран.На этом другом экране изменения элементов можно отследить с помощью OnSharedPreferenceChangeListener, и я изменяю сводку на экране родительских предпочтений, но когда я возвращаюсь к этому экрану предпочтений родителей, сводка не изменилась.

Тот же вопрос задавался здесь , но вывод был неясен, и я не смог решить эту проблему.Мне кажется, это общая проблема, и я думаю, что есть хорошее решение для этого.

Доза, кто-нибудь знает решение этой проблемы?

  • Есть одна вещь, которую я хотел бы оставить:суб-предпочтение стандартное, а не пользовательское.

Ответы [ 2 ]

4 голосов
/ 30 сентября 2011

Я решил это, добавив OnPreferenceClickListener к настройкам, которые изменят сводку на главном экране.

OnPreferenceClickListener viewUpdater = new OnPreferenceClickListener() {
        @Override
        public boolean onPreferenceClick(Preference preference) {
            updateView();
            return  false;
        }
    };

В методе updateView () я устанавливаю сводку на новое значение, а затем использую метод invalidateViews в просмотре списка предпочтений, чтобы вызвать обновление отображаемой сводки

private void updateView() {
    preference.setSummary(newSummary);
    getListView().invalidateViews();
}
0 голосов
/ 11 августа 2013

Проверьте ответ из @ jmbouffard , который мне подходит

...