Чтобы переводить контент на ваш предпочитаемый язык, Google использует технологии на основе искусственного интеллекта. Переводы от ИИ могут содержать ошибки.
Ресурс меню
Оптимизируйте свои подборки
Сохраняйте и классифицируйте контент в соответствии со своими настройками.
Ресурс меню определяет меню приложения (меню параметров, контекстное меню или подменю), которое можно развернуть с помощью MenuInflater.
Подробнее о том, как добавлять меню…
- местоположение файла;
res/menu/filename.xml
Название файла используется в качестве идентификатора ресурса.
- скомпилированный тип данных ресурса:
- Указатель на ресурс
Menu (или подкласс)
- ссылка на ресурс:
-
В Java:
R.menu.filename
В XML: @[package:]menu.filename
- Синтаксис:
-
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@[+][package:]id/resource_name"
android:title="string"
android:titleCondensed="string"
android:icon="@[package:]drawable/drawable_resource_name"
android:onClick="method name"
android:showAsAction=["ifRoom" | "never" | "withText" | "always" | "collapseActionView"]
android:actionLayout="@[package:]layout/layout_resource_name"
android:actionViewClass="class name"
android:actionProviderClass="class name"
android:alphabeticShortcut="string"
android:alphabeticModifiers=["META" | "CTRL" | "ALT" | "SHIFT" | "SYM" | "FUNCTION"]
android:numericShortcut="string"
android:numericModifiers=["META" | "CTRL" | "ALT" | "SHIFT" | "SYM" | "FUNCTION"]
android:checkable=["true" | "false"]
android:visible=["true" | "false"]
android:enabled=["true" | "false"]
android:menuCategory=["container" | "system" | "secondary" | "alternative"]
android:orderInCategory="integer" />
<group android:id="@[+][package:]id/resource name"
android:checkableBehavior=["none" | "all" | "single"]
android:visible=["true" | "false"]
android:enabled=["true" | "false"]
android:menuCategory=["container" | "system" | "secondary" | "alternative"]
android:orderInCategory="integer" >
<item />
</group>
<item >
<menu>
<item />
</menu>
</item>
</menu>
- elements:
-
- Обязательный атрибут. Это должен быть корневой узел. Содержит элементы
<item> и/или <group>.
Атрибуты:
xmlns:android
- Пространство имен XML. Обязательно. Определяет пространство имен XML, которое должно быть
"http://schemas.android.com/apk/res/android".
<item>
- Пункт меню. Может содержать элемент
<menu> (для подменю).
Должен быть дочерним элементом <menu> или <group>.
Атрибуты:
android:id
- Идентификатор ресурса. Уникальный идентификатор ресурса. Чтобы создать новый идентификатор ресурса для этого объекта, используйте форму:
"@+id/name". Знак плюса указывает на то, что это новый идентификатор.
android:title
- Строковый ресурс. Название меню в виде строкового ресурса или необработанной строки.
android:titleCondensed
- Строковый ресурс. Сокращенный заголовок в виде строкового ресурса или необработанной строки. Этот заголовок используется, когда обычный заголовок слишком длинный.
android:icon
- Прорисовываемый ресурс. Изображение, которое будет использоваться в качестве значка пункта меню.
android:onClick
- Название метода. Метод, который вызывается при нажатии на этот пункт меню. Метод должен быть объявлен в действии как общедоступный. В качестве единственного параметра он принимает
MenuItem, который указывает на выбранный элемент. Этот метод имеет приоритет над стандартным обратным вызовом onOptionsItemSelected(). Пример приведен в конце этой страницы.
Внимание! Если вы обфусцируете код с помощью ProGuard или аналогичного инструмента, не переименовывайте метод, указанный в этом атрибуте, иначе приложение может перестать работать.
Появился в API уровня 11.
android:showAsAction
- Ключевое слово. Когда и как этот элемент появляется в качестве задачи на панели приложения. Пункт меню может отображаться как задача, только если в действии есть панель приложения. Допустимые значения:
| Значение | Описание |
ifRoom | Размещайте этот элемент на панели приложения, только если для него есть место. Если для всех элементов с атрибутом "ifRoom" не хватает места, то элементы с наименьшими значениями orderInCategory отображаются как действия, а остальные – в дополнительном меню. |
withText | Также добавьте к задаче текст заголовка (определяется атрибутом android:title). Это значение можно использовать вместе с другими в качестве набора флагов, разделяя их вертикальной чертой |. |
never | Никогда не размещайте этот элемент на панели приложения. Вместо этого добавьте его в дополнительное меню на панели приложения. |
always | Всегда размещать этот элемент на панели приложения.
Используйте это значение, только если элемент должен всегда показываться на панели действий. Если вы настроите несколько элементов так, чтобы они всегда отображались как задачи, они могут перекрывать другие элементы интерфейса на панели приложения. |
collapseActionView | Представление действия, связанное с этим элементом действия (как объявлено в android:actionLayout или android:actionViewClass), можно свернуть. Появилось в API уровня 14. |
Подробнее о том, как добавить панель приложения…
Появился в API уровня 11.
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:alphabeticShortcut
- Char. Символ для буквенного сочетания клавиш.
android:numericShortcut
- Целое число. Цифра для быстрой клавиши.
android:alphabeticModifiers
- Ключевое слово. Модификатор для буквенного сочетания клавиш пункта меню. Значение по умолчанию соответствует клавише Control. Допустимые значения:
| Значение | Описание |
META |
Соответствует клавише Meta. |
| CTRL |
Соответствует метаклавише Control. |
| ALT |
Соответствует метаклавише Alt. |
| SHIFT |
Соответствует метаклавише Shift. |
| SYM |
Соответствует метаклавише Sym. |
| FUNCTION |
Соответствует метаклавише Function. |
Примечание. В атрибуте можно указать несколько ключевых слов. Например, android:alphabeticModifiers="CTRL|SHIFT" означает, что для активации соответствующего пункта меню пользователю нужно нажать клавиши Control и Shift вместе с быстрой клавишей.
Чтобы задать значения атрибутов программно, используйте метод setAlphabeticShortcut(). Подробнее alphabeticModifierоб атрибуте alphabeticModifiers…
android:numericModifiers
- Ключевое слово. Модификатор для цифрового сочетания клавиш пункта меню.
Значение по умолчанию соответствует клавише Control. Допустимые значения:
| Значение | Описание |
| META |
Соответствует клавише Meta. |
| CTRL |
Соответствует метаклавише Control. |
| ALT |
Соответствует метаклавише Alt. |
| SHIFT |
Соответствует метаклавише Shift. |
| SYM |
Соответствует метаклавише Sym. |
| FUNCTION |
Соответствует метаклавише Function. |
Примечание. В атрибуте можно указать несколько ключевых слов. Например, android:numericModifiers="CTRL|SHIFT" означает, что для активации соответствующего пункта меню пользователю нужно нажать клавиши Control и Shift вместе с быстрой клавишей.
Чтобы задать значения атрибутов программно, используйте метод setNumericShortcut(). Подробнее об атрибуте numericModifier рассказывается в статье numericModifiers.
android:checkable
- Логическое значение. True, если элемент можно отметить.
android:checked
- Логическое значение. True, если элемент выбран по умолчанию.
android:visible
- Логическое значение. True, если элемент виден по умолчанию.
android:enabled
- Логическое значение. True, если элемент включен по умолчанию.
android:menuCategory
- Ключевое слово. Значение, соответствующее константам
Menu CATEGORY_*, которые определяют приоритет элемента. Допустимые значения:
| Значение | Описание |
container | Для объектов, которые являются частью контейнера. |
system | Для элементов, предоставляемых системой. |
secondary | Для второстепенных (редко используемых) вариантов, предоставляемых пользователем. |
alternative | Для элементов, которые являются альтернативными действиями
с данными, которые отображаются в данный момент. |
android:orderInCategory
- Целое число. Порядок важности элемента в группе.
<group>
- Группа меню, чтобы создать коллекцию элементов с общими признаками, например, видны ли они, включены или доступны для выбора. Содержит один или несколько элементов
<item>. Должен быть дочерним элементом <menu>.
Атрибуты:
android:id
- Идентификатор ресурса. Уникальный идентификатор ресурса. Чтобы создать новый идентификатор ресурса для этого объекта, используйте форму
"@+id/name". Знак плюса указывает на то, что это новый идентификатор.
android:checkableBehavior
- Ключевое слово. Тип поведения при выборе для группы. Допустимые значения:
| Значение | Описание |
none | Этот элемент выбрать нельзя. |
all | Вы можете выбрать все элементы, установив флажки. |
single | Можно выбрать только один вариант (используйте переключатели). |
android:visible
- Логическое значение. True, если группа видна.
android:enabled
- Логическое значение. True, если группа включена.
android:menuCategory
- Ключевое слово. Значение, соответствующее константам
Menu CATEGORY_*, которые определяют приоритет группы. Допустимые значения:
| Значение | Описание |
container | Для групп, которые являются частью контейнера. |
system | Для групп, предоставляемых системой. |
secondary | Для групп, которые являются дополнительными (редко используемыми) вариантами, предоставляемыми пользователем. |
alternative | Для групп, которые являются альтернативными действиями
с данными, которые отображаются в данный момент. |
android:orderInCategory
- Целое число. Порядок элементов в категории по умолчанию.
- пример:
- XML-файл сохранен в
res/menu/example_menu.xml:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item android:id="@+id/item1"
android:title="@string/item1"
android:icon="@drawable/group_item1_icon"
app:showAsAction="ifRoom|withText"/>
<group android:id="@+id/group">
<item android:id="@+id/group_item1"
android:onClick="onGroupItemClick"
android:title="@string/group_item1"
android:icon="@drawable/group_item1_icon" />
<item android:id="@+id/group_item2"
android:onClick="onGroupItemClick"
android:title="@string/group_item2"
android:icon="@drawable/group_item2_icon" />
</group>
<item android:id="@+id/submenu"
android:title="@string/submenu_title"
app:showAsAction="ifRoom|withText" >
<menu>
<item android:id="@+id/submenu_item1"
android:title="@string/submenu_item1" />
</menu>
</item>
</menu>
В следующем коде приложения меню разворачивается из обратного вызова onCreateOptionsMenu(Menu), а также объявляется обратный вызов при нажатии для двух элементов:
Kotlin
override fun onCreateOptionsMenu(menu: Menu): Boolean {
menuInflater.inflate(R.menu.example_menu, menu)
return true
}
fun onGroupItemClick(item: MenuItem) {
// One of the group items (using the onClick attribute) was clicked.
// The item parameter passed here indicates which item it is.
// All other menu item clicks are handled by Activity.onOptionsItemSelected.
}
Java
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.example_menu, menu);
return true;
}
public void onGroupItemClick(MenuItem item) {
// One of the group items (using the onClick attribute) was clicked.
// The item parameter passed here indicates which item it is.
// All other menu item clicks are handled by Activity.onOptionsItemSelected.
}
Контент и образцы кода на этой странице предоставлены по лицензиям. Java и OpenJDK – это зарегистрированные товарные знаки корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2026-10-24 UTC.
[null,null,["Последнее обновление: 2026-10-24 UTC."],[],[]]