У меня есть приложение для Android, в котором у меня есть свои настройки в XML-файле, который отлично работает. Теперь я хочу установить один из параметров с помощью кода, а не отображать весь экран параметров, как мне это сделать?
Android - Как установить предпочтение в коде
Ответы (3)
Я предполагаю, что под настройками вы имеете в виду настройки своего приложения, а не настройки телефона 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.
Эти настройки будут храниться на телефоне и будут доступны только вашему приложению.
Дополнительная документация находится здесь
apply();
вместо commit();
- person Twinone; 08.04.2013
Я пробовал это, но не работал:
SharedPreferences settings = getSharedPreferences(String n, MODE_PRIVATE);
Попробуйте это вместо этого:
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);
Вы можете сохранить что-то в общих настройках, используя код ниже
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);
}