Mit einer Menüressource wird ein Anwendungsmenü – ein Optionsmenü, ein Kontextmenü oder Untermenü – definiert, das
kann mit MenuInflater
aufgeblasen werden.
Eine Anleitung zur Verwendung von Menüs finden Sie unter Menüs hinzufügen.
- Dateispeicherort:
res/menu/filename.xml
Der Dateiname wird als Ressourcen-ID verwendet.
- Datentyp der kompilierten Ressource:
- Ressourcenzeiger auf eine Ressource vom Typ
Menu
(oder abgeleitete Klasse)
- Ressourcenreferenz:
-
In Java:
R.menu.filename
XML: @[package:]menu.filename
- Syntax:
-
<?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>
- Elemente:
-
- Erforderlich. Dies muss der Stammknoten sein. Enthält
<item>
und/oder
<group>
-Elemente.
Attribute:
xmlns:android
- XML-Namespace. Erforderlich. Definiert den XML-Namespace, der
muss
"http://schemas.android.com/apk/res/android"
sein.
<item>
- Ein Menüpunkt. Kann ein
<menu>
-Element (für ein Untermenü) enthalten.
Muss einem <menu>
- oder <group>
-Element untergeordnet sein.
Attribute:
android:id
- Ressourcen-ID. Eine eindeutige Ressourcen-ID. Verwenden Sie das folgende Formular, um eine neue Ressourcen-ID für dieses Element zu erstellen:
"@+id/name"
Das Pluszeichen zeigt an, dass dieser
ID.
android:title
- Stringressource. Der Menütitel als String-Ressource oder Raw-String.
android:titleCondensed
- Stringressource. Ein zusammengefasster Titel als String-Ressource oder Rohstring. Dieses
title wird verwendet, wenn der normale Titel zu lang ist.
android:icon
- Drawable resource. Ein Bild, das als Symbol für den Menüpunkt verwendet werden soll.
android:onClick
- Methodenname. Die Methode, die aufgerufen wird, wenn auf diesen Menüpunkt geklickt wird. Die
-Methode in der Aktivität als öffentlich deklariert werden. Sie akzeptiert
MenuItem
als
only-Parameter, der den angeklickten Artikel angibt. Diese Methode hat Vorrang vor der Standardmethode
Callback an onOptionsItemSelected()
. Weitere Informationen finden Sie in der
Beispiel am Ende dieser Seite an.
Warnung:Wenn Sie Ihren Code mit ProGuard oder einem ähnlichen Tool verschleiern,
Schließen Sie die in diesem Attribut angegebene Methode von der Umbenennung aus, da dies den
Funktionalität.
Wurde in API-Level 11 eingeführt.
android:showAsAction
- Keyword: Wann und wie dieses Element als Aufgabe in der App angezeigt wird
. Ein Menüpunkt kann nur dann als Aufgabe angezeigt werden, wenn die Aktivität eine
App-Leiste. Gültige Werte:
Wert | Beschreibung |
ifRoom | Dieses Element nur in den
App-Leiste, wenn Platz dafür ist. Wenn nicht genug Platz für alle
die mit "ifRoom" gekennzeichneten Elemente, die mit dem niedrigsten
orderInCategory -Werte werden als Aktionen angezeigt.
werden die übrigen Elemente
im Dreipunkt-Menü angezeigt. |
withText | Fügen Sie auch den Titeltext (definiert
von android:title ) durch die Aufgabe. Sie können diesen Wert zusammen mit einem
der anderen als Flag gesetzt, indem sie durch einen senkrechten Strich (| ) getrennt werden. |
never | Platziere dieses Element niemals in der App-Leiste. Listen Sie das Element stattdessen im Überlaufbereich der App-Leiste auf.
. |
always | Dieses Element immer in der App-Leiste platzieren.
Verwenden Sie diese Option nur, wenn es unbedingt erforderlich ist, dass das Element immer in der Aktion angezeigt wird
. Wenn mehrere Elemente immer als Aufgaben angezeigt werden, können diese sich überschneiden.
mit anderen UI-Elementen
in der App-Leiste. |
collapseActionView | Die zugehörige Aktionsansicht
mit dieser Aufgabe (wie von android:actionLayout angegeben oder
android:actionViewClass ) ist
minimierbar. Mit API-Level 14 eingeführt. |
Weitere Informationen finden Sie unter App-Leiste hinzufügen.
.
Wurde in API-Level 11 eingeführt.
android:actionLayout
- Layoutressource: Ein Layout, das als Aktionsansicht verwendet wird.
Weitere Informationen finden Sie unter Aktion verwenden
Aufruf- und Aktionsanbieter.
Wurde in API-Level 11 eingeführt.
android:actionViewClass
- Kursname. Ein voll qualifizierter Klassenname für die
View
die als Aktionsansicht verwendet werden soll. Beispiel:
"android.widget.SearchView"
, um SearchView
als Aktionsansicht zu verwenden.
Weitere Informationen finden Sie unter Aktion verwenden
Aufruf- und Aktionsanbieter.
Warnung:Wenn Sie Ihren Code mit ProGuard oder einem ähnlichen Tool verschleiern,
Schließen Sie die in diesem Attribut angegebene Klasse von der Umbenennung aus, da dies den
Funktionalität.
Wurde in API-Level 11 eingeführt.
android:actionProviderClass
- Kursname. Ein voll qualifizierter Klassenname für die
ActionProvider
, die anstelle der Aufgabe verwendet wird. Beispiel:
"android.widget.ShareActionProvider"
, um ShareActionProvider
zu verwenden.
Weitere Informationen finden Sie unter Aktion verwenden
Aufruf- und Aktionsanbieter.
Warnung:Wenn Sie Ihren Code mit ProGuard oder einem ähnlichen Tool verschleiern,
Schließen Sie die in diesem Attribut angegebene Klasse von der Umbenennung aus, da dies den
Funktionalität.
Wurde in API-Level 14 eingeführt.
android:alphabeticShortcut
- Zeichen. Ein Zeichen für die alphabetische Tastenkombination.
android:numericShortcut
- Ganzzahl. Zahl für die numerische Tastenkombination.
android:alphabeticModifiers
- Keyword: Ein Modifikator für den Buchstaben des Menüpunkts
. Der Standardwert entspricht dem Steuerelement
. Gültige Werte:
Wert | Beschreibung |
META |
Entspricht dem Metaschlüssel Meta. |
STRG |
Entspricht der Metataste Strg. |
ALT. |
Entspricht der Metataste Alt. |
UMSCHALTUNG |
Entspricht der Metataste Umschalttaste. |
SYM |
Entspricht dem Metaschlüssel Sym. |
FUNKTION |
Entspricht dem Metaschlüssel Funktion. |
Hinweis: Sie können in einem Element mehrere Keywords angeben.
. Beispiel:
android:alphabeticModifiers="CTRL|SHIFT"
gibt an,
dass die Nutzenden zum Auslösen des entsprechenden Menüpunkts
die Metataste Strg und Umschalttaste zusammen
mit der Tastenkombination.
Mit der Methode setAlphabeticShortcut()
können Sie
Attributwerte programmatisch festlegen. Weitere Informationen
zum Attribut alphabeticModifier
finden Sie unter
alphabeticModifiers
.
android:numericModifiers
- Keyword: Ein Modifikator für das numerische Kürzel des Menüelements.
Der Standardwert entspricht der Taste Strg. Gültig
Werte:
Wert | Beschreibung |
META |
Entspricht dem Metaschlüssel Meta. |
STRG |
Entspricht der Metataste Strg. |
ALT. |
Entspricht der Metataste Alt. |
UMSCHALTUNG |
Entspricht der Metataste Umschalttaste. |
SYM |
Entspricht dem Metaschlüssel Sym. |
FUNKTION |
Entspricht dem Metaschlüssel Funktion. |
Hinweis: Sie können in einem Element mehrere Keywords angeben.
. Beispiel:
android:numericModifiers="CTRL|SHIFT"
gibt an,
dass die Nutzenden zum Auslösen des entsprechenden Menüpunkts
die Metataste Strg und Umschalttaste zusammen
mit der Tastenkombination.
Mit der Methode setNumericShortcut()
können Sie
die Attributwerte programmatisch zu ändern. Weitere Informationen zu
das Attribut numericModifier
, siehe
numericModifiers
.
android:checkable
- Boolescher Wert. "True", wenn das Element auswählbar ist.
android:checked
- Boolescher Wert. „True“, wenn das Element standardmäßig aktiviert ist.
android:visible
- Boolescher Wert. „True“, wenn das Element standardmäßig sichtbar ist.
android:enabled
- Boolescher Wert. „True“, wenn das Element standardmäßig aktiviert ist.
android:menuCategory
- Keyword: Wert, der
Menu
CATEGORY_*
entspricht
-Konstanten, die die Priorität des Elements definieren. Gültige Werte:
Wert | Beschreibung |
container | Für Elemente, die zu einem
Container. |
system | Für Artikel, die vom
System. |
secondary | Für vom Nutzer bereitgestellte sekundäre Elemente
(selten verwendet) angezeigt. |
alternative | Für Elemente, bei denen es sich um alternative Aktionen handelt
zu den aktuell angezeigten Daten. |
android:orderInCategory
- Ganzzahl. Die Reihenfolge der Wichtigkeit eines Elements innerhalb einer Gruppe.
<group>
- Eine Menügruppe, um eine Sammlung von Elementen mit gemeinsamen Merkmalen zu erstellen, z. B.
sichtbar, aktiviert oder auswählbar. Enthält ein oder mehrere
<item>
-Elemente. Muss ein
einem <menu>
-Element untergeordnet ist.
Attribute:
android:id
- Ressourcen-ID. Eine eindeutige Ressourcen-ID. So erstellen Sie eine neue Ressourcen-ID für dieses Element:
Verwenden Sie das folgende Formular:
"@+id/name"
Das Pluszeichen zeigt an, dass dieser
ID.
android:checkableBehavior
- Keyword: Der Typ des auswählbaren Verhaltens für die Gruppe. Gültige Werte:
Wert | Beschreibung |
none | Nicht auswählbar. |
all | Sie können alle Elemente auswählen (verwenden Sie die Kästchen). |
single | Es kann nur ein Element ausgewählt werden (Radio verwenden)
Schaltflächen). |
android:visible
- Boolescher Wert. „True“, wenn die Gruppe sichtbar ist.
android:enabled
- Boolescher Wert. „True“, wenn die Gruppe aktiviert ist.
android:menuCategory
- Keyword: Wert, der
Menu
CATEGORY_*
entspricht
-Konstanten, die die Priorität der Gruppe definieren. Gültige Werte:
Wert | Beschreibung |
container | Für Gruppen, die Teil eines
Container. |
system | Für Gruppen, die vom
System. |
secondary | Für vom Nutzer bereitgestellte sekundäre Gruppen
(selten verwendet) angezeigt. |
alternative | Für Gruppen, bei denen es sich um alternative Aktionen handelt
zu den aktuell angezeigten Daten. |
android:orderInCategory
- Ganzzahl. Die Standardreihenfolge der Artikel innerhalb der Kategorie.
- Beispiel:
- XML-Datei gespeichert unter
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>
Mit dem folgenden App-Code wird das Menü aus dem onCreateOptionsMenu(Menu)
-Callback in die Höhe getrieben und außerdem die Klick-URL deklariert.
für zwei der Elemente:
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.
}