Android - Как мне Установить Предпочтения В Коде
-
23-08-2019 - |
Вопрос
У меня есть приложение для Android, в котором у меня есть свои предпочтения в XML-файле, который работает нормально.Теперь я хочу установить одно из предпочтений с помощью кода вместо отображения всего экрана предпочтений, как бы я это сделал?
Решение
Я предполагаю, что под настройками вы имеете в виду настройки вашего приложения, а не настройки телефона Android.
Чтобы сохранять настройки между запусками вашего приложения, вам необходимо выполнить следующее
Создайте объект SharedPreferences
SharedPreferences settings = getSharedPreferences(String n, MODE_PRIVATE);
Строка n определяет ваши предпочтения, а второй аргумент - это способ доступа к ним
Создание экземпляра объекта Редактора
SharedPreferences.Editor editor = settings.edit();
Примечание:не пытайтесь использовать settings.editor.edit(), это не создаст постоянный объект, и приведенный ниже код не будет работать
Запишите свои предпочтения в буфер
editor.put...(String, value)
Существует множество функций put, putString, putBoolean и т.д.Строка - это ключ ("версия", "хороший запуск"), а значение - это значение ("1.5.2", true).
Очистите буфер
editor.commit();
Это фактически записывает, что вы указали в настройках.Если ваше приложение выйдет из строя до этой строки, то настройки не будут записаны.Существует также документированная ошибка:предполагается, что commit() возвращает логическое значение, указывающее на успех или неудачу.Последний раз, когда я проверял, он всегда возвращал false.
Эти настройки будут сохранены на телефоне и будут доступны только вашему приложению.
Дополнительная документация - это здесь
Другие советы
Я пробовал это, но не сработало:
SharedPreferences settings = getSharedPreferences(String n, MODE_PRIVATE);
Попробуйте это вместо этого:
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);
Вы можете сохранить что-то в sharedpreferences, используя приведенный ниже код
public static void save(String valueKey, String value) {
SharedPreferences prefs = PreferenceManager
.getDefaultSharedPreferences(context);
SharedPreferences.Editor edit = prefs.edit();
edit.putString(valueKey, value);
edit.commit();
}
Чтобы прочитать настройки:
public static String read(String valueKey, String valueDefault) {
SharedPreferences prefs = PreferenceManager
.getDefaultSharedPreferences(context);
return prefs.getString(valueKey, valueDefault);
}