Speisekartenressource

Eine Menüressource definiert ein Anwendungsmenü – ein Optionsmenü, ein Kontextmenü oder ein Untermenü –, das mit MenuInflater aufgebläht werden kann.

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.
kompilierter Ressourcentyp:
Ressourcenzeiger auf eine Ressource vom Typ Menu (oder Unterklasse)
Ressourcenreferenz:
In Java: R.menu.filename
In 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. Das muss der Root-Knoten sein. Enthält <item>- und/oder <group>-Elemente.

Attribute:

xmlns:android
XML-Namespace. Erforderlich. Definiert den XML-Namespace. Dieser 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 Formular "@+id/name", um eine neue Ressourcen-ID für dieses Element zu erstellen. Das Plus-Symbol zeigt an, dass dies als neue ID erstellt wurde.
android:title
Stringressource. Der Menütitel als Stringressource oder Rohstring.
android:titleCondensed
Stringressource. Ein komprimierter Titel als String-Ressource oder Rohstring. Er wird für Situationen verwendet, in denen der normale Titel zu lang ist.
android:icon
Drawable-Ressource. Ein Bild, das als Symbol für das Menü verwendet werden soll.
android:onClick
Methodenname. Die Methode, die aufgerufen werden soll, wenn auf dieses Menüelement geklickt wird. Die Methode muss in der Aktivität als „öffentlich“ deklariert werden. Als einzigen Parameter darf MenuItem verwendet werden, um anzugeben, auf welches Element auf das Element geklickt wurde. Diese Methode hat Vorrang vor dem Standard-Callback von onOptionsItemSelected(). Sehen Sie sich dazu das 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 die Funktionalität beeinträchtigen kann.

Eingeführt in API-Level 11.

android:showAsAction
Keyword. Wann und wie dieses Element als Aufgabe in der App-Leiste angezeigt wird. Ein Menüpunkt kann nur dann als Aufgabe angezeigt werden, wenn die Aktivität eine App-Leiste enthält. Gültige Werte:
AntwortBeschreibung
ifRoomPlatziere dieses Element nur dann in der App-Leiste, wenn genug Platz dafür ist. Wenn nicht für alle mit "ifRoom" gekennzeichneten Elemente Platz ist, werden die Elemente mit den niedrigsten orderInCategory-Werten als Aktionen angezeigt. Die verbleibenden Elemente werden im Dreipunkt-Menü angezeigt.
withTextFügen Sie der Aufgabe auch den Titeltext (definiert durch android:title) hinzu. Sie können diesen Wert zusammen mit einem der anderen Werte als Flag festlegen, indem Sie sie durch einen senkrechten Strich | trennen.
neverPlatzieren Sie dieses Element niemals in der App-Leiste. Listen Sie das Element stattdessen im Dreipunkt-Menü der App-Leiste auf.
alwaysDieses Element muss immer in der App-Leiste platziert werden. Verwenden Sie diese Option nur, wenn es unbedingt immer in der Aktionsleiste angezeigt wird. Wenn mehrere Elemente immer als Aktionselemente angezeigt werden, kann dies dazu führen, dass sie andere UI-Elemente in der App-Leiste überlappen.
collapseActionViewDie mit dieser Aufgabe verknüpfte Aktionsansicht (wie in android:actionLayout oder android:actionViewClass deklariert) kann minimiert werden.
Eingeführt in API-Level 14.

Weitere Informationen finden Sie unter App-Leiste hinzufügen.

Eingeführt in API-Level 11.

android:actionLayout
Layoutressource. Layout, das als Aktionsansicht verwendet werden soll

Weitere Informationen finden Sie unter Aktionsansichten und Aktionsanbieter verwenden.

Eingeführt in API-Level 11.

android:actionViewClass
Kursname. Ein voll qualifizierter Klassenname für View, der als Aktionsansicht verwendet werden soll. Beispiel: "android.widget.SearchView", um SearchView als Aktionsansicht zu verwenden.

Weitere Informationen finden Sie unter Aktionsansichten und Aktionsanbieter verwenden.

Warnung:Wenn Sie Ihren Code mit ProGuard oder einem ähnlichen Tool verschleiern, müssen Sie die in diesem Attribut angegebene Klasse von der Umbenennung ausschließen, da dies die Funktionalität beeinträchtigen kann.

Eingeführt in API-Level 11.

android:actionProviderClass
Kursname. Ein voll qualifizierter Klassenname für ActionProvider, der anstelle der Aufgabe verwendet wird. Beispiel: "android.widget.ShareActionProvider", um ShareActionProvider zu verwenden.

Weitere Informationen finden Sie unter Aktionsansichten und Aktionsanbieter verwenden.

Warnung:Wenn Sie Ihren Code mit ProGuard oder einem ähnlichen Tool verschleiern, müssen Sie die in diesem Attribut angegebene Klasse von der Umbenennung ausschließen, da dies die Funktionalität beeinträchtigen kann.

Eingeführt in API-Level 14.

android:alphabeticShortcut
Char. Ein Zeichen für die alphabetische Tastenkombination.
android:numericShortcut
Ganzzahl. Zahl für die numerische Tastenkombination
android:alphabeticModifiers
Keyword. Ein Modifikator für die alphabetische Tastenkombination für den Menüpunkt. Der Standardwert entspricht dem Schlüssel Strg. Gültige Werte:
AntwortBeschreibung
META Entspricht dem Metaschlüssel Meta.
STRG Entspricht der Metataste Strg.
ALT. Entspricht der Meta-Taste Alt.
UMSCHALTUNG Entspricht der Metataste Umschalttaste.
SYM-Datei Entspricht dem Metaschlüssel Sym.
FUNKTION Entspricht der Metataste Funktion.

Hinweis: Sie können in einem Attribut mehrere Keywords angeben. android:alphabeticModifiers="CTRL|SHIFT" bedeutet beispielsweise, dass der Nutzer zum Auslösen des entsprechenden Menüpunkts die Metataste Strg und Umschalttaste zusammen mit der Tastenkombination drücken muss.

Mit der Methode setAlphabeticShortcut() können Sie die Attributwerte programmatisch festlegen. Weitere Informationen zum Attribut alphabeticModifier finden Sie unter alphabeticModifiers.

android:numericModifiers
Keyword. Ein Modifikator für die numerische Tastenkombination eines Menüpunkts. Der Standardwert entspricht dem Schlüssel Strg. Gültige Werte:
AntwortBeschreibung
META Entspricht dem Metaschlüssel Meta.
STRG Entspricht der Metataste Strg.
ALT. Entspricht der Meta-Taste Alt.
UMSCHALTUNG Entspricht der Metataste Umschalttaste.
SYM-Datei Entspricht dem Metaschlüssel Sym.
FUNKTION Entspricht der Metataste Funktion.

Hinweis: Sie können in einem Attribut mehrere Keywords angeben. android:numericModifiers="CTRL|SHIFT" bedeutet beispielsweise, dass der Nutzer zum Auslösen des entsprechenden Menüpunkts die Metataste Strg und Umschalttaste zusammen mit der Tastenkombination drücken muss.

Mit der Methode setNumericShortcut() können Sie die Attributwerte programmatisch festlegen. Weitere Informationen zum Attribut numericModifier finden Sie unter numericModifiers.

android:checkable
Boolescher Wert. „True“, wenn das Element überprüfbar ist.
android:checked
Boolescher Wert. „True“, wenn das Element standardmäßig ausgewählt 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 den Menu-Konstanten CATEGORY_* entspricht, die die Priorität des Elements definieren. Gültige Werte:
AntwortBeschreibung
containerFür Elemente, die Teil eines Containers sind.
systemFür Elemente, die vom System bereitgestellt werden.
secondaryFür Elemente, die vom Nutzer bereitgestellte sekundäre (selten verwendete) Optionen sind.
alternativeBei Elementen, die alternative Aktionen für die aktuell angezeigten Daten sind.
android:orderInCategory
Ganzzahl. Die Wichtigkeit eines Elements innerhalb einer Gruppe.
<group>
Eine Menügruppe zum Erstellen einer Sammlung von Elementen mit gemeinsamen Merkmalen, z. B. ob sie sichtbar, aktiviert oder auswählbar sind. Enthält ein oder mehrere <item>-Elemente. Muss einem <menu>-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 Plus-Symbol zeigt an, dass dies als neue ID erstellt wurde.
android:checkableBehavior
Keyword. Die Art des auswählbaren Verhaltens für die Gruppe. Gültige Werte:
AntwortBeschreibung
noneNicht auswählbar.
allAlle Elemente können ausgewählt werden (mithilfe von Kästchen).
singleEs kann nur ein Element ausgewählt werden. Verwenden Sie dazu die Optionsfelder.
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 den Menu-Konstanten CATEGORY_* entspricht, die die Priorität der Gruppe definieren. Gültige Werte:
AntwortBeschreibung
containerFür Gruppen, die Teil eines Containers sind.
systemFür Gruppen, die vom System bereitgestellt werden.
secondaryFür Gruppen, die vom Nutzer bereitgestellte sekundäre (selten verwendete) Optionen sind.
alternativeFür Gruppen, die alternative Aktionen für die aktuell angezeigten Daten darstellen.
android:orderInCategory
Ganzzahl. Die Standardreihenfolge der Elemente innerhalb einer 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 Anwendungscode wird das Menü aus dem onCreateOptionsMenu(Menu)-Callback aufgebläht und außerdem der On-Click-Callback für zwei der Elemente deklariert:

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.
}