Speisekartenressource

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:
WertBeschreibung
ifRoomDieses 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.
withTextFü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.
neverPlatziere dieses Element niemals in der App-Leiste. Listen Sie das Element stattdessen im Überlaufbereich der App-Leiste auf. .
alwaysDieses 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.
collapseActionViewDie 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:
WertBeschreibung
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:
WertBeschreibung
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:
WertBeschreibung
containerFür Elemente, die zu einem Container.
systemFür Artikel, die vom System.
secondaryFür vom Nutzer bereitgestellte sekundäre Elemente (selten verwendet) angezeigt.
alternativeFü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:
WertBeschreibung
noneNicht auswählbar.
allSie können alle Elemente auswählen (verwenden Sie die Kästchen).
singleEs 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:
WertBeschreibung
containerFür Gruppen, die Teil eines Container.
systemFür Gruppen, die vom System.
secondaryFür vom Nutzer bereitgestellte sekundäre Gruppen (selten verwendet) angezeigt.
alternativeFü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.
}