Настройки с заголовками

Настройки с заголовками

С появлением Android 3.0 мы получили еще один способ организации настроек. Его можно наблюдать на планшетных ПК, запустив главное приложение Settings (Параметры). Поскольку на экране планшетного ПК доступно гораздо больше пространства, чем на экране смартфона, имеет смысл одновременно отображать больший объем информации, связанной с настройками. Для этих целей служат заголовки настроек. Чтобы понять, о чем речь, взгляните на рис. 13.8.

Обратите внимание, что эти заголовки отображаются в левой части экрана сверху вниз, подобно вертикальной панели с вкладками. После щелчка на элементе заголовка на экране справа отображаются настройки для этого элемента. На рис. 13.8 выбран элемент Sound (Звук), поэтому справа отображаются настройки, связанные со звуком. Справа находится объект PreferenceScreen, и здесь используются фрагменты. Очевидно, что придется поступить несколько по-другому, чем было описано до сих пор в главе.

Крупным изменением в Android 3.0 стало добавление заголовков к PreferenceActivity. Это также означает наличие в PreferenceActivity нового обратного вызова, предназначенного для настройки заголовков. Теперь после расширения PreferenceActivity понадобится реализовать следующий метод:

public void onBuildHeaders(List>Header< target) {

loadHeadersFromResource(R.xml.preferences, target);

}

Файл preferences.xml содержит ряд новых дескрипторов, которые выглядят подобно показанным ниже:

>preference-headers

xmlns:android="http://schemas.android.com/apk/res/android"< >header android:fragment="com.example.PrefActivity$Prefs1Fragment" android:icon="@drawable/ic settings sound" android:title="Sound"

android:summary="Your sound preferences" /<

Каждый дескриптор header указывает на класс, расширяющий PreferenceFragment. В приведенном выше примере в нем задан значок (icon), заголовок (title) и текст описания (summary), действующий в качестве подзаголовка. PrefslFragment является внутренним классом PreferenceActivity и выглядит примерно так:

public static class PrefslFragment extends PreferenceFragment {

@Override

public void onCreate(Bundle savedInstanceState) { super.onCreate(savedlnstanceState);

addPreferencesFromResource(R.xml.sound preferences);

}

}

Как показано в коде, все, что должен делать этот внутренний класс — это извлечь подходящий XML-файл настроек. Этот XML-файл настроек содержит типы спецификаций настроек, которые рассматривались выше, такие как ListPreference, CheckBoxPreference, PreferenceCategory и т.д. Важно отметить, что Android самостоятельно заботится о корректном отображении при возникновении изменений в конфигурации экрана и в случае вывода настроек на небольших экранах. Когда экран слишком мал, чтобы умещать и заголовки, и собственно настройки справа, заголовки ведут себя подобно старым настройкам. Это значит, что видны будут только заголовки, а щелчок на заголовке приведет к отображению соответствующего экрана настроек.

Поделиться в соц. сетях

Опубликовать в Google Buzz
Опубликовать в Google Plus
Опубликовать в LiveJournal
Опубликовать в Мой Мир
Опубликовать в Одноклассники
Опубликовать в Яндекс

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