Элемент CheckBoxPreference
Вы видели, что представление ListPreference отображало списковый элемент управления пользовательского интерфейса. Подобным образом, представление CheckBoxPreference отображает виджет в виде флажка.
Давайте расширим наше демонстрационное приложение для поиска авиарейсов. Предположим, что пользователю нужно дать возможность формировать список столбцов для просмотра результирующего набора. Такой экран настроек выводит все доступные столбцы и позволяет пользователю выбрать желаемые столбцы, отмечая соответствующие флажки. Пользовательский интерфейс для этого примера показан на рис. 13.3, а XML-файл настроек приведен в е 13.5.
В е 13.5 показано содержимое XML-файла настроек chkbox.xml и код простого класса активности, который загружает его с помощью вызова addPreferencesFromResource() . Как видите, пользовательский интерфейс содержит пять флажков, каждый из которых представлен узлом CheckBoxPreference в XML- файле настроек. У каждого из этих флажков имеется ключ, который, естественно, используется для хранения состояния графического элемента, когда наступает время сохранения выбранных настроек. Класс CheckBoxPreference как раз и позволяет сохранить состояние настройки, когда пользователь устанавливает или сбрасывает флажок настройки. Хранилище данных для настроек приведено в е 13.6.
Как видите, каждая настройка сохраняется с помощью своего атрибута key. Типом данных для CheckBoxPreference является boolean, т.е. он содержит либо значение true (означает, что настройка выбрана), либо значение false (настройка не выбрана). Для чтения значения одной из настроек в виде флажков необходимо получить доступ к разделяемым настройкам и вызвать метод getBoolean() со значением key в качестве аргумента:
boolean option = prefs.getBoolean("show price column pref", false);
У CheckBoxPreference есть еще одно полезное свойство: возможность указания разных поясняющих текстов в зависимости от того, установлен (XML-атрибут summaryOn) или сброшен (summaryOff) флажок. А теперь перейдем к рассмотрению представления EditTextPreference.
Добавить комментарий
Для отправки комментария вам необходимо авторизоваться.