Ресурс меню

В ресурсе меню описывается меню приложения (меню настройки, контекстное меню и подменю). Для создания меню из ресурса применяется объект MenuInflater.

Руководство по использованию меню смотрите в разделе Меню.

МЕСТОПОЛОЖЕНИЕ ФАЙЛА:

res/menu/filename.xml

Имя файла используется в качестве идентификатора ресурса.

ТИП РЕСУРСА ПОСЛЕ КОМПИЛЯЦИИ:
Указатель на объект Menu или его подкласс.
ССЫЛКА НА РЕСУРС:

В Java: R.menu.filename

В XML: @[package:]menu.filename

СИНТАКСИС:
ЭЛЕМЕНТЫ:
<menu>

Обязательный. Элемент должен быть корневым. Включает дочерние элементы <item> и <group>.

Атрибуты:

xmlns:android
Обязательный. Указывает пространство имен XML. Значение должно быть равно "schemas.android.com/apk/res/android"
<item>

Пункт меню. Может включать дочерние элементы <menu> (подменю). Должен быть дочерним для элемента <menu> или <group>.

Атрибуты:

android:id
Уникальный идентификатор ресурса в форме "@+id/name".
android:title
Название пункта меню. В качестве значения может быть строка или строковый ресурс.
android:titleCondensed
Краткое название пункта меню. В качестве значения может быть строка или строковый ресурс. Используется в случае, если полное название слишком длинное.
android:icon
Иконка пункта меню. В качестве значения должен быть указан ресурс типа drawable.
android:onClick

Имя метода, который должен быть вызван при клике на пункт меню. Метод должен быть объявлен в явлении как публичный (public) и принимать объект типа MenuItem в качестве единственного параметра, который ссылается на выбранный пункт меню. Указанный метод имеет приоритет над стандартным методом обратного вызова onOptionItemSelected(). Смотрите пример ниже.

Предупреждение: если вы используете обфускацию кода с помощью ProGuard(или подобного инструмента), убедитесь, что метод, указанный в атрибуте не будет переименован, поскольку это может нарушить функциональность.

Добавлен в API 11.

android:showAsAction

Указывает в каких случаях данный пункт меню должен отображаться на панели инструментов (такое возможно только если явление содержит панель инструментов). Атрибут добавлен в API 11. Возможные значения приведены в таблице:

Значение Описание
ifRoom Добавляется на панель инструментов только если есть свободное место.
withText Добавлять название. Данное значение может использоваться совместно с другими, в качестве разделителя используется вертикальная черта “|”.
never Никогда не размещать на панели инструментов.
always Всегда размещать на панели инструментов. Старайтесь не использовать данное значение, если нет реальной необходимости всегда отображать данный пункт на панели. Установка значения always для нескольких элементов может привести к перекрытию других элементов панели.
collapseActionView Указывает, что разметка, ассоциированная с данным пунктом (с помощью android:actionLayout или android:actionViewClass) является выпадающей. Добавлено в API 14.

Подробности смотрите в разделе Панель инструментов.

android:actionLayout

Ресурс разметки для использования в качестве компонента панели инструментов. Добавлен в API 11.

Подробности смотрите в разделе Панель инструментов.

android:actionViewClass

Полное имя подкласса View для использования в качестве компонента панели инструментов. Например, "android.widget.SearchView" для использования компонента класса SearchView на панели инструментов.

Подробности смотрите в разделе Панель инструментов.

Предупреждение: если вы используете обфускацию кода с помощью ProGuard(или подобного инструмента), убедитесь, что класс, указанный в атрибуте не будет переименован, поскольку это может нарушить функциональность.

Добавлен в API 11.

android:actionProviderClass

Полное имя подкласса ActionProvider для использования в месте пункта меню. Например, "android.widget.ShareActionProvider" для использования класса ShareActionProvider.

Подробности смотрите в разделе Панель инструментов.

Предупреждение: если вы используете обфускацию кода с помощью ProGuard(или подобного инструмента), убедитесь, что класс, указанный в атрибуте не будет переименован, поскольку это может нарушить функциональность.

Добавлен в API 14.

android:alpabeticShortcut
Тип: char. Горячая клавиша при использовании клавиатуры.
android:numericShortcut
Тип: integer. Горячая клавиша при использовании цифровой клавиатуры.
android:checkable
Тип: boolean. “true” если пункт можно пометить.
android:checked
Тип: boolean. “true” если пункт помечен по умолчанию.
android:visible
Тип: boolean. “true” если пункт видим по умолчанию.
android:menuCategory

Значение соответствует константе CATEGORY_* класса Menu, которая указывает приоритет пункта меню. Может принимать следующие значения:

Значение Описание
container Для пунктов, являющихся частью контейнера.
system Для пунктов, предоставленных системой.
secondary Для редко используемых пунктов меню.
alternative Для пунктов, предоставляющих альтернативные действия с текущими данными.
android:orderInCategory
Тип: integer. Порядок “важности” пунктов меню.
<group>

Группа меню (для создания коллекции пунктов меню имеющих общие черты, например по видимости или активности). Может включать в себя один или несколько элементов <item>. Элемент должен быть дочерним для <menu>.

Атрибуты:

android:id
Уникальный идентификатор группы в форме "@+id/name".
android:checkableBehavior

Тип поведения при переключении. Возможные значения:

Значение Описание
none Не переключаемые.
all Все пункты группы могут быть выбраны одновременно (используются флажки).
single Только один пункт меню может быть выбран одновременно (используются радио-кнопки).
android:visible
Тип: boolean. “true” если группа видима.
android:enabled
Тип: boolean. “true” если группа активна (пользователь может с ней взаимодействовать).
android:menuCategory

Значение соответствует константе CATEGORY_* класса Menu, которая указывает приоритет группы меню. Может принимать следующие значения:

Значение Описание
container Для групп, являющихся частью контейнера.
system Для групп, предоставленных системой.
secondary Для редко используемых групп меню.
alternative Для групп, предоставляющих альтернативные действия с текущими данными.
android:orderInCategory
Тип: integer. Порядок пунктов меню группы по умолчанию.
ПРИМЕР:

XML файл: res/menu/example_menu.xml

Далее приведен пример заполнения меню в методе onCreateOptionsMenu(Menu) и пример метода обработки клика по пункту меню:

Примечание: атрибут android:showAsAction доступен начиная с Android 3.0 (API 11) и выше.

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