SharedPreferences в Android: сохраняем настройки

В этом уроке мы будем использовать SharedPreferences для хранения пользовательских данных в виде пар ключ-значение.

SharedPreferences в Android. Теория

SharedPreferences позволяют приложениям сохранять настройки в виде пар ключ-значение. Эти настройки сохраняются даже когда пользователь закрывает приложение.

Android хранит SharedPreferences в виде XML файла в папке shared_prefs по адресу data --> data --> [имя пакета] -->. Папку data можно получить с помощью вызова метода Environment.getDataDirectory().

SharedPreferences зависят от приложения, то есть сохраненные данные будут удалены из Android устройства после удаления приложения или после очистки данных приложения.

Обзор API SharedPreferences

Android предоставляет три метода получения доступа к SharedPreferences:

  • Метод getPreferences() используется внутри Activity для доступа к одному общему файлу настроек приложения.
  • Метод getSharedPreferences() используется внутри Activity для доступа к разным файлам настроек приложения.
  • Метод getDefaultSharedPreferences() используется классом PreferenceManager, чтобы получить доступ к стандартному файлу настроек.

В этом уроке мы познакомимся с методом getSharedPreferences() подробнее.

Этот метод используется следующим образом:

где prefs_name — имя файла, а mode —  способ получения доступа.

Всего Android предоставляет несколько способов получения доступа:

  • MODE_PRIVATE — режим по умолчанию, где созданный файл может быть доступен только вызывающему приложению
  • MODE_WORLD_READABLE — создание файлов, к которым могут получить доступ на чтение из любого другого приложения (опасный метод, который часто приводит к проблемам в безопасности приложения)
  • MODE_WORLD_WRITEABLE — создание файлов, к которым могут получить доступ (чтение и запись) из любого другого приложения.
  • MODE_MULTI_PROCESS был помечен как deprecated в Android API 23, так как не работал правильно в некоторых версиях Android и не был потокобезопасным.
  • MODE_APPEND — добавляет новые настройки к уже существующим.

SharedPreferences в Android. Практика

Начиная с этого урока мы будем выносить текст или названия виджетов, используемых в макете в файл strings.xml, который находится в папке res/values вашего проекта. Это является хорошей практикой программирования под Android, которой мы будем следовать. Вот файл strings.xml для нашего проекта:

Макет activity_main.xml состоит из одного виджета EditText и трех кнопок для сохранения, очистки и получения пользовательских данных из SharedPreferences:

Обратите внимание, что мы назначили в атрибуте onClick один и тот же метод. Ниже в листинге класса MyActivity.class вы увидите как мы обрабатываем нажатия для каждой кнопки:

Обратите внимание, что мы реализуем интерфейс View.OnClickListener и переопределяем метод onClick(), в котором с помощью оператора switch находим id виджета, который был нажат. В макете activity_main.xml именно этот метод мы назначили общим для всех кнопок.

Результат работы приложения сохранения настроек SharedPreferences в Android:

SharedPreferences Android prologistic.com.ua

Как видим, на рисунку представлен ход выполнения операций: сначала пишем текст в поле (1), затем нажимаем Сохранить (2), потом нажимаем Очистить (3) и в конце тестируем получение настроек из SharedPreferences — нажимаем Получить (4).

На этом все, следите за обновлениями раздела программирование под Андроид и подписывайтесь на рассылку сайта!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *