Настройки предпочтений Android не обновляются правильно

Я создал страницу настроек Android и хотел показать текущую опцию, выбранную в сводке.

Поэтому я реализовал прослушиватель onSharedPreferenceChanged, который также вызывается правильно. Тем не менее, нет изменения экрана и отображается старая опция.

public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
    // just update all
    ListPreference lp = (ListPreference) findPreference(PREF_DOWNLOAD_WEB);
    lp.setSummary(getString(R.string.pref_listDownloadWebSummary)  + ": %s");
}

Это известная ошибка?

1 ответ

Решение

Я заметил, что обновленная сводка отображается, когда я устанавливаю другую сводку prefs. Поэтому я сначала установил для сводки значение "пустышка", а затем реальную строку. Это тоже работает.

public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
    // just update all
    ListPreference lp = (ListPreference) findPreference(PREF_DOWNLOAD_WEB);
    lp.setSummary("dummy"); // required or will not update
    lp.setSummary(getString(R.string.pref_listDownloadWebSummary)  + ": %s");

}
Другие вопросы по тегам