Створення меню в XML, Фанклуб користувачів андроїд

У попередніх програмах ми створювали для вікон діяльності схеми розмітки у вигляді XML-документів, що зберігаються в каталозі res/layouts/. Аналогічно можна визначати меню в XML-документах та завантажувати їх у програму. Файли меню зберігаються в окремому каталозіres/menu/.

У XML-файлі меню є три елементи:

  • - Кореневий елемент файлу меню;
  • - Контейнерний елемент, що визначає групу меню;
  • - Елемент, що визначає пункт меню.

Елементи і можуть бути дочірніми елементами. Звичайно, кореневий вузол будь-якого файлу має бути елементом меню.

Як приклад програми із завантаженням меню з XML ми визначимо те саме меню зі значками, створене нами раніше. Створимо в Eclipse новий проект і в діалозі Create New Project заповнимо поля:

  • Project пате - IconMenuApp;
  • Application пате - Load Menu from resource;
  • Package пате - com. samples. resmenuxmi;
  • Create Activity - ResMenuXmlActivity.

УXML-файлі, який визначатиме меню, створимо п'ять пунктів меню -Open, Save, Edit, Help таExit і збережемо цей файл під ім'ям>options.xml у каталозіres/menu/ проекту. Повний код файлуoptions.xml представлений у лістингу.

Файл меню options.xml

Файл розмітки для діяльності програми з єдиним віджетом TextView наведено у лістингу.

Файл розмітки main.xml

Завантаження меню з ресурсу дещо відрізняється від створення меню в коді програми. У коді методу зворотного викликуonCreateOptionsMenu() достатньо отримати посилання на ресурс XML файлу, що визначає меню:

При завантаженні меню з файлу XML ідентифікатори меню визначають у файлі,і, отже, немає необхідності оголошувати їх у коді програми. Укласі R будуть згенеровані константи, яких можна звертатися в коді, як і ідентифікаторам інших ресурсів. Ці ідентифікатори можна використовувати у методі зворотного викликуonOptionsitemSelected(), наприклад, таким чином:

Повний код класу головної діяльності ResMenuXmlActivity показаний у лістингу.

Файл класу діяльності ResMenuXml Activity Java

Скомпілюйте та запустіть проект на виконання. Зовнішній вигляд програми із завантаженням меню з файлу XML не відрізняється від меню, створеного в коді програми.