Сохранение пользовательских настроек



Пользовательские настройки обычно используются для сохранения установок приложения, типа приветствия, размеров и стилей шрифта, звукового сопровождения,которые будут загружены при запуске приложения. В любом мобильном устройстве обязательно присутствует интерфейс для установки пользовательских настроек

(напанелиApplication Launcher— значокSettings). Пример установки настроек и

внешний вид окон показан на рис. 16.3.

Android предоставляет в распоряжение разработчиков библиотеку PreferencesFramework, с помощью которой можно создавать индивидуальный набор настроеки встраивать их в приложения. Preferences Framework представляет собой наборклассов для разработки. Иерархия этих классов показана на рис. 16.4.

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

r CheckBoxPreference;

r EditTextPreference;

r ListPreference;

r RingtonePreference.

Если набор настроек будет совместно употребляться с другими компонентами данного приложения, необходимо присвоить имя этому набору. Если набор настроекбудет использоваться только в одном Activity, имя можно не присваивать и применятьвызовметодаActivy.getPreferences(). Нельзя использовать пользовательские настройки для обмена данными между приложениями.

Пользовательские настройки — это отдельный экран в приложении, вызываемыйиз Activity. Они определяются в отдельном XML-файле. Корнем настроек в XMLявляется элемент <PreferenceScreen>, который представляет собой контейнер итакже может содержать дочерние элементы <PreferenceScreen>. Элемент<PreferenceCategory>также является контейнерным элементом и предназначен дляобъединения настроек в группы.

Доступ к настройкам

Система Android позволяет приложениям сохранять пользовательские настройки ввиде пары ключ-значение для примитивных типов данных. В пользовательских настройках можно сохранять любые данные, если они имеют тип String или являютсяпримитивными типами данных (boolean, int и т. д.).

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

Для получения доступа к настройкам в коде приложения используются три метода:

r getPreferences() — внутри Activity, для обращения к локальным настройкам,

предназначенным только для этого Activity;

r getSharedPreferences() — внутри Activity, для обращения к общим настройкам

приложения;

r getDefaultSharedPreferences() — из объекта PreferencesManager, чтобы получить общедоступные для всех приложений пользовательские настройки, предос-

тавляемые на уровне системы.

Первые два метода принимают параметр режима безопасности, обычно установленный в 0. Метод getSharedPreferences() также принимает название ряда пользовательских настроек — getPreferences(). Метод getDefaultSharedPreferences() в

качестве параметра принимает объект Context (например, текущего Activity).

Все эти методы возвращают экземпляр класса SharedPreferences, из которого можно получить значения соответствующих настроек с помощью ряда методов:

r getBoolean(String key, boolean defValue);

r getFloat(String key, float defValue);

r getInt(String key, int defValue);

r getLong(String key, long defValue);

r getString(String key, String defValue).

Второй параметр в методах get...() — это значение по умолчанию, возвращаемое при невозможности прочитать значение для данной настройки. Например, таким образом можно получить значение для пользовательской настройки с типом boolean:

SharedPreferences prefs =

PreferenceManager.getDefaultSharedPreferences(this);

boolean val = prefs.getBoolean(getString(R.string.pref_item), false))

CheckBoxPreference

НастройкаCheckBoxPreference сохраняетboolean-переменнуювSharedPreferences. Эта самое простая пользовательская настройка. Для примера использования

CheckBoxPreference в приложении создайте новый проект и в окне Create New

Projectвведитеследующиезначения:

r Project name— Preferences;

r Application name— Preferences Sample;

r Package name— com.samples.res.preferences;

r Create Activity— LaunchActivity.

Учитывая, что пользовательские настройки объявляются в XML-файле, для их отображения необходимо использовать встроенный Activity. В классе Activityвнутри метода обратного вызова onCreate() нужно только вызвать методaddPreferencesFromResource() и загрузить XML-ресурс из файла (в нашем примере — это файл preferences.xml), содержащий пользовательские настройки.

EditTextPreference

    Каркас настроек в Android предоставляет также пользовательские настройки с текстовым полем — EditTextPreference. Эти настройки позволяют фиксировать текст, вводимый пользователем в свободной форме.

ListPreference

ListPreference представляет собой диалоговое окно со списком. Для его формирования требуется строковый ресурс для заголовка диалогового окна и массив строкдля списка значений. Индекс выбранной строки списка определяет, какое значениесохранено как пользовательские настройки в SharedPreferences.

RingtonePreference

RingtonePreference — это специализированная настройка для установки режима мелодии для звонка мобильного устройства.

PreferenceCategory

Если приложение содержит много пользовательских настроек, иметь их всех в одном большом списке может стать неудобным для восприятия. Preferences Framework позволяет группировать пользовательские настройки, распределяя их по категориям.

Категории добавляются через элемент <PreferenceCategory>в файле preferences.xml и используются для группировки связанных настроек. Вместо того чтобы иметь все пользовательские настройки как дочерние записи корневого элемента <PreferenceScreen>, можно поместить в XML-файл дополнительные элементы <PreferenceCategory>под корневым элементом <PreferenceScreen>, а затем установить пользовательские настройки в соответствующие категории.

PreferenceScreen

Корневой элемент <PreferenceScreen>позволяет вложение дочерних элементов <PreferenceScreen>. Любые дочерние записи вложенного элемента <PreferenceScreen>будут отображаться на отдельном экране. Родительский экран <PreferenceScreen>в этом случае будет отображать в своем списке настроек вход для запуска дочернего экрана настроек.


Дата добавления: 2018-06-27; просмотров: 319; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!