Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Android - Как установить предпочтение в коде

Автор вопроса: CommunityОтветов: 3

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

androidsharedpreferencesandroid-preferences

Ответы

Ответ 1 · рейтинг 122 · Will

Я предполагаю, что под настройками вы имеете в виду настройки своего приложения, а не настройки телефона 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.

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

Дополнительная документация находится здесь

Ответ 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.

Похожие материалы