У меня есть приложение для Android, в котором у меня есть свои настройки в XML-файле, который отлично работает. Теперь я хочу установить один из параметров с помощью кода, а не отображать весь экран параметров, как мне это сделать?
Вопрос
Android - Как установить предпочтение в коде
Ответы
Ответ 1 · рейтинг 122 · Will
Я предполагаю, что под настройками вы имеете в виду настройки своего приложения, а не настройки телефона Android.
Чтобы сохранить настройки между запусками вашего приложения, вам необходимо сделать следующее
Создайте объект SharedPreferences
SharedPreferences settings = getSharedPreferences(String n, MODE_PRIVATE);Строка n определяет ваши предпочтения, а второй аргумент - это режим, в котором они будут доступны
Создание экземпляра объекта Editor
SharedPreferences.Editor editor = settings.edit();Примечание: не пытайтесь использовать settings.editor.edit(), это не создаст постоянный объект, и приведенный ниже код не будет работать
Запишите свои предпочтения в буфер
editor.put...(String, value)Существует множество функций put, putString, putBoolean и т. д. Строка - это ключ ("версия", "успешный запуск"), а значение - значение ("1.5.2", true)
Очистить буфер
editor.commit();На самом деле это означает, что вы указали настройки. Если ваше приложение выйдет из строя до этой строки, настройки не будут записаны. Существует также задокументированная ошибка: предполагается, что commit() возвращает логическое значение, указывающее на успех или неудачу. Последнее, что я проверял, всегда возвращало false.
Эти настройки будут храниться на телефоне и будут доступны только вашему приложению.
Дополнительная документация находится здесь
Ответ 2 · рейтинг 8 · Adan
Я пробовал это, но не работал:
SharedPreferences settings = getSharedPreferences(String n, MODE_PRIVATE);
Попробуйте это вместо этого:
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);
Ответ 3 · рейтинг 3 · AndroidSter
Вы можете сохранить что-то в общих настройках, используя код ниже
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);
}
Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.
Похожие материалы
- Отменить задание, которое запускает сопрограмму, и повторно использовать объект задания
- Передача MutableLiveData между функциями
- Как воспроизвести звук "Tick Tick" с анимацией Android (возможно, с помощью "Android MediaPlayer /
- Как наблюдать за Emited LiveData с помощью MVVM
- Формат файла XML по умолчанию для Android
- Samsung и Android 2.2.1 поделились предустановленной проблемой