Многие приложения могут предоставлять способ захвата пользовательских настроек в настройках конкретного приложения или действия. Для поддержки этого Android предоставляет простой набор API.
Предпочтения обычно представляют собой пары имя-значение. Они могут быть сохранены как «Общие настройки» для различных действий в приложении (обратите внимание, что в настоящее время они не могут быть разделены между процессами). Или это может быть что-то, что должно храниться отдельно от действия.
Общие настройки: общие настройки могут использоваться всеми компонентами (действиями, службами и т. Д.) Приложений.
Предпочтения, обработанные действием: эти предпочтения могут использоваться только в упражнении и не могут использоваться другими компонентами приложения.
Общие настройки:
Управление общими настройками осуществляется с помощью метода getSharedPreferences
класса Context
. Предпочтения хранятся в файле по умолчанию (1), или вы можете указать имя файла (2), которое будет использоваться для обращения к предпочтениям.
(1) Вот как вы получаете экземпляр при указании имени файла
public static final String PREF_FILE_NAME = "PrefFile";
SharedPreferences preferences = getSharedPreferences(PREF_FILE_NAME, MODE_PRIVATE);
MODE_PRIVATE
- режим работы для предпочтений. Это режим по умолчанию и означает, что созданный файл будет доступен только вызывающему приложению. Поддерживаются два других режима: MODE_WORLD_READABLE
и MODE_WORLD_WRITEABLE
. В MODE_WORLD_READABLE
другое приложение может прочитать созданный файл, но не может изменить его. В случае MODE_WORLD_WRITEABLE
другие приложения также имеют права на запись для созданного файла.
(2) Рекомендуемый способ - использовать в режиме по умолчанию, без указания имени файла
SharedPreferences preferences = PreferencesManager.getDefaultSharedPreferences(context);
Наконец, когда у вас есть экземпляр предпочтений, вот как вы можете извлечь сохраненные значения из предпочтений:
int storedPreference = preferences.getInt("storedInt", 0);
К сохранить значения в файле настроек SharedPreference.Editor
должен использоваться объект. Editor
- это вложенный интерфейс класса SharedPreference
.
SharedPreferences.Editor editor = preferences.edit();
editor.putInt("storedInt", storedPreference); // value to store
editor.commit();
Редактор также поддерживает такие методы, как remove()
и clear()
для удаления значения предпочтения из файла.
Настройки деятельности:
Общие настройки могут использоваться другими компонентами приложения. Но если вам не нужно делиться настройками с другими компонентами и хотите, чтобы действия были частными. Вы можете сделать это с помощью метода действия getPreferences()
. Метод getPreference
использует метод getSharedPreferences()
с именем класса активности для имени файла настроек.
Ниже приведен код для получения настроек
SharedPreferences preferences = getPreferences(MODE_PRIVATE);
int storedPreference = preferences.getInt("storedInt", 0);
Код для хранения значений такой же, как и в случае общих настроек.
SharedPreferences preferences = getPreference(MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putInt("storedInt", storedPreference); // value to store
editor.commit();
Вы также можете использовать другие методы, такие как сохранение состояния активности в базе данных. Примечание. Android также содержит пакет под названием android.preference
. Пакет определяет классы для реализации пользовательского интерфейса настроек приложения.
Чтобы увидеть больше примеров, посмотрите сообщение Android Storage на сайте разработчиков.