Настройки предпочтений 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");
}