Начальные значения PreferenceScreen/PreferenceFragment при использовании PreferenceDataStoreAndroid

Форум для тех, кто программирует под Android
Anonymous
Начальные значения PreferenceScreen/PreferenceFragment при использовании PreferenceDataStore

Сообщение Anonymous »

Я реализую экран предпочтений, который представляет собой XML-файл с тегом PreferenceScreen, раздутым в PreferenceFragment. Обычно это поддерживается SharedPreferences, однако в моей конкретной ситуации мы заменяем SharedPreferences на собственный PreferenceDataStore для некоторых настроек.
В методе Fragment onCreate мы получаем отдельные настройки и перехват. их в PreferenceDataStore.
SwitchPreference pref = (SwitchPreference) findPreference("my_boolean_preference");
pref.setPreferenceDataStore(dataStore);

Это работает нормально, за исключением того, что текущее значение игнорируется при первом отображении экрана. Как я могу получить правильное значение при первом отображении экрана. Должен ли я поместить приведенный выше код где-нибудь кроме onCreate? Нужно ли мне вызывать какое-то обновление или перепривязку?
В настоящее время я работаю над решением этой проблемы, вручную устанавливая значение сразу после вызова setPreferenceDataStore.
pref.setChecked(dataStore.getBoolean("my_boolean_preference", false));


Подробнее здесь: https://stackoverflow.com/questions/652 ... erencedata

Вернуться в «Android»