Краткий ответ: звучит так, как будто вы звоните PreferenceManager.getGlobalPreferences
в какой-то момент, который будет загружать файл настроек по умолчанию, а не ваши «именованные» настройки. Если вы смешаете это и context.getSharedPreferences("PREFS_NAME", Context.MODE_WORLD_READABLE)
, вы получите странное поведение.
Длинный ответ:
Вы должны указать имя файла настроек, который вы будете читать каждый раз, когда открываете его:
SharedPreferences prefs = context.getSharedPreferences("PREFS_NAME", Context.MODE_WORLD_READABLE)
Это заставит приложение создать новый файл настроек с именем «PREFS_NAME.xml», если он еще не существует, и начать его использовать.
addPreferencesFromFile () - это другая функция, которая используется только для заполнения PreferenceActivity. Если вы не хотите использовать PreferenceActivity, тогда это бесполезно для вас.
Если вы решили использовать действие предпочтения для своих настроек, используйте вышеизложенное, затем установите предпочтения для этого экземпляра действия предпочтения с помощью
getPreferenceManager().setSharedPreferencesName("PREF_NAME);
Тогда позвоните addPreferencesFromResource()
. Если вы не используете PreferenceActivity, то addPreferencesFromResource () ничего не сделает для вас.