Вопрос

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

Это было полезно?

Решение

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

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

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

    SharedPreferences settings = getSharedPreferences(String n, MODE_PRIVATE);
    

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

  2. Создание экземпляра объекта Редактора

    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.

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

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

Другие советы

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

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);
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top