Android - Как установить предпочтение в коде - PullRequest
41 голосов
/ 16 февраля 2009

У меня есть приложение для Android, в котором у меня есть свои предпочтения в XML-файле, который работает нормально. Теперь я хочу установить одно из предпочтений, используя код вместо отображения всего экрана предпочтений, как мне это сделать?

Ответы [ 3 ]

121 голосов
/ 16 февраля 2009

Я предполагаю, что вы ссылаетесь на настройки вашего приложения, а не на настройки телефона Android.

Чтобы сохранить настройки между запусками вашего приложения, вам нужно сделать следующее

  1. Создание объекта SharedPreferences

    SharedPreferences settings = getSharedPreferences(String n, MODE_PRIVATE);
    

    Строка n определяет ваши предпочтения, а второй аргумент - это режим, к которому они будут доступны

  2. Создание объекта Editor

    SharedPreferences.Editor editor = settings.edit();
    

    Примечание: не пытайтесь использовать settings.editor.edit (), это не сделает постоянный объект, и приведенный ниже код не будет работать

  3. Запишите ваши предпочтения в буфер

    editor.put...(String, value)
    

    Существует множество функций put, putString, putBoolean и т. Д. Строка - это ключ («версия», «хороший запуск»), а значение - значение («1.5.2», true)

  4. Очистить буфер

    editor.commit();
    

    Это на самом деле пишет, что вы положили в настройках. Если ваше приложение падает до этой строки, настройки не будут записаны. Существует также задокументированная ошибка: commit () должен возвращать логическое значение, указывающее на успех или неудачу. Последнее, что я проверял, всегда возвращалось false.

Эти настройки будут сохранены на телефоне и будут доступны только для вашего приложения.

Больше документации здесь

8 голосов
/ 01 декабря 2011

Я попробовал это, но не сработало:

SharedPreferences settings = getSharedPreferences(String n, MODE_PRIVATE);

Попробуйте вместо этого:

SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);
2 голосов
/ 29 апреля 2016

Вы можете сохранить что-то в общих настройках, используя код ниже

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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...