ОБНОВЛЕНИЕ
При ближайшем рассмотрении я вижу, что вы, вероятно, неправильно получаете объект SharedPreference
.хотя я не пробовал, чтобы этот тест работал, я предполагаю, что вам нужно будет вызвать getSharedPreferences (String name, int mode)
с именем вашего XML-файла, чтобы получить объект, в котором хранятся значения, определенные в вашем XML-файле.
getDefaultSharedPreferences (Context context)
состояния:
Получает экземпляр SharedPreferences, который указывает на файл по умолчанию, который используется инфраструктурой предпочтений в данном контексте.Параметры
context Контекст предпочтений, значения которых требуются.Возвращает
Экземпляр SharedPreferences, который можно использовать для извлечения и прослушивания значений предпочтений.
Ваш файл не является файлом по умолчанию и, следовательно, вашими предпочтениями являютсяпопытки вызова не существуют.
Обычно способ работы с предпочтениями заключается в создании подкласса PreferenceActivity
, который создаст интерфейс настроек, но я ценю, что вы просто пытаетесь написать простой тест.
Также я предполагаю, что CheckBoxPreference android:key="auto_launcvh_key"
является опечаткой при написании вопроса.Я думаю, что проверял ключ при первом написании этого ответа, и это было CheckBoxPreference android:key="auto_launch_key"
ОРИГИНАЛ
Во-первых, я бы изменил test = mSharedPreferences.getBoolean("auto_launch_key", true);
на test = mSharedPreferences.getBoolean("auto_launch_key", false);
, если он сейчасвозвращает false, тогда предпочтения не существует в системе, поэтому существует проблема с вашей средой.Попробуйте очистить проект и переустановить.
Во-вторых, в документации указано:
readAgain - стоит ли перечитывать значения по умолчанию.Примечание: это НЕ сбрасывает настройки обратно к значениям по умолчанию.Для этой функции используйте getDefaultSharedPreferences (Context) и очистите его, а затем вызовите этот метод с этим параметром, установленным в true.
Поэтому, если предпочтение уже существует в системе как истинное, это не будет перезаписыватьи поэтому переустановка должна разобраться и с этим.или вы можете попробовать позвонить clear()
на mSharedPreferences
и затем позвонить PreferenceManager.setDefaultValues(getApplicationContext(), R.xml.settings_org, true);
Если это не сработает, вы можете опубликовать полный XML.