Сохранение пользовательских настроек
Пользовательские настройки обычно используются для сохранения установок приложения, типа приветствия, размеров и стилей шрифта, звукового сопровождения,которые будут загружены при запуске приложения. В любом мобильном устройстве обязательно присутствует интерфейс для установки пользовательских настроек
(напанели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; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!