Главная » Разработка для Android » Знакомство с Живыми каталогами

0

Живые каталоги — это уникальный и мощный механизм, с помощью ко- торого ваши приложения могут выводить информацию из своих Источников

данных прямо на домашнем экране. Они предоставляют динамические ссыл- ки на данные, которые хранит ваше приложение.

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

ПРИМЕЧАНИЕ

Чтобы добавить Живой каталог на домашний экран, сделайте продол- жительное нажатие на свободном участке и выберите раздел Folders. Откроется список доступных Живых каталогов. Нажмите на один из них, чтобы выбрать. Чтобы открыть Живой каталог, нужно просто на него на- жать; передвигать его можно с помощью продолжительного нажатия.

Создание Живых каталогов

Живые каталоги — комбинация двух элементов: Источника данных, кото- рый возвращает  информацию в стандартном  формате,  необходимую  для заполнения Живого каталога, и Активности, которая  возвращает  Намерение, используемое  для генерации Живого каталога.

Чтобы создать новый Живой каталог, нужно определить:

Активность, ответственную за создание и настройку  Живого каталога, она будет создавать и возвращать  специального  вида Намерение;

Источник данных, предоставляющий элементы, которые будут отобра- жаться с помощью корректных имен столбцов.

Каждый элемент в Живом каталоге может быть представлен  в виде трех частей: значка, названия и описания.

Источники данных для Живых каталогов

Любой Источник данных может предоставлять информацию, отобража- ющуюся в Живом каталоге. В них используется стандартный набор имен столбцов.

LiveFolders._ID. Уникальный идентификатор, который указывает на то, какой именно элемент был выбран, если пользователь сделал на- жатие в меню Живого каталога.

LiveFolders.NAME. Заголовочный текст, отображаемый с помощью большого шрифта. Этот столбец — единственный обязательный эле- мент.

LiveFolders.DESCRIPTION. Более длинное поле для описания, ото- бражается с помощью меньшего шрифта под заголовком.

LiveFolders.IMAGE. Изображение, размещающееся в левой части элемента.

При отображении Живой каталог использует  имена этих столбцов  для извлечения информации из Источника данных.

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

Листинг 10.15. Создание проекции  для поддержки  Живого  каталога

final HashMap<String, String> liveFolderProjection =

new HashMap<String, String>();

liveFolderProjection.put(LiveFolders._ID, KEY_ID + " AS " + LiveFolders._ID);

liveFolderProjection.put(LiveFolders.NAME, KEY_NAME_COLUMN + " AS " + LiveFolders.NAME);

liveFolderProjection.put(LiveFolders.DESCRIPTION, KEY_DESCRIPTION_COLUMN + " AS " +

LiveFolders.DESCRIPTION);

Продолжение ?

Листинг 10.15 (продолжение)

liveFolderProjection.put(LiveFolders.IMAGE, KEY_IMAGE_COLUMN + " AS " + LiveFolders.IMAGE);

SQLiteQueryBuilder qb = new SQLiteQueryBuilder(); qb.setTables(MY_TABLES); qb.setProjectionMap(LIVE_FOLDER_PROJECTION);

Обязательными столбцами  сичтаются только _ID  и NAME, при необ- ходимости изображение и описание можно не использовать.

Источник: Майер P. Android 2 : программирование приложений для планшетных компьютеров и смартфонов : [пер. с англ. ] / Рето Майер. — М. : Эксмо, 2011. — 672 с. — (Мировой компьютерный бестселлер).

По теме:

  • Комментарии