Risorsa di menu
Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.
Una risorsa di menu definisce un menu dell'applicazione (un menu di opzioni, un menu contestuale o un sottomenu) che può essere gonfiato con MenuInflater
.
Per una guida all'utilizzo dei menu, consulta la sezione Aggiungere menu.
- percorso del file:
res/menu/filename.xml
- Il nome file viene utilizzato come ID risorsa
- tipo di dati della risorsa compilato:
- Puntatore di risorsa a una risorsa
Menu
(o sottoclasse) - riferimento della risorsa:
- In Java:
R.menu.filename
In XML: @[package:]menu.filename
- sintassi:
-
<?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>
- elementi:
-
- Obbligatorio. Deve essere il nodo radice. Contiene
<item>
e/o Elementi <group>
. Attributi:
xmlns:android
- Spazio dei nomi XML. Obbligatorio. Definisce lo spazio dei nomi XML, deve essere
"http://schemas.android.com/apk/res/android"
.
<item>
- Una voce di menu. Potrebbe contenere un elemento
<menu>
(per un sottomenu). Deve essere un elemento secondario di un elemento <menu>
o <group>
. Attributi:
android:id
- ID risorsa. Un ID risorsa univoco. Per creare un nuovo ID risorsa per questo elemento, utilizza il modulo:
"@+id/name"
. Il simbolo più indica che viene creato come nuovo ID. android:title
- Risorsa stringa. Il titolo del menu come risorsa stringa o stringa non elaborata.
android:titleCondensed
- Risorsa stringa. Un titolo ridotto come risorsa stringa o una stringa non elaborata. Questo titolo viene utilizzato quando il titolo normale è troppo lungo.
android:icon
- Risorsa disegnabile. Un'immagine da utilizzare come icona della voce di menu.
android:onClick
- Nome metodo. Il metodo da chiamare quando l'utente fa clic su questa voce di menu. La deve essere dichiarato come pubblico nell'attività. Accetta un
MenuItem
come , che indica l'articolo selezionato. Questo metodo ha la precedenza sul metodo standard callback a onOptionsItemSelected()
. Consulta le esempio alla fine di questa pagina. Avviso:se offuschi il codice utilizzando ProGuard o uno strumento simile, assicurati di escludere il metodo specificato in questo attributo dalla ridenominazione, poiché potrebbe interrompere funzionalità.
Introdotto nel livello API 11.
android:showAsAction
- Parola chiave. Quando e come questo elemento viene visualizzato come attività nell'app . Una voce di menu può essere visualizzata come attività solo se l'attività include una barra delle app. Valori validi:
Valore | Descrizione |
ifRoom | Posiziona questo elemento solo nella barra delle app, se c'è spazio. Se non c'è spazio per tutti gli elementi contrassegnati con "ifRoom" , quelli con il I valori di orderInCategory vengono visualizzati come azioni e gli altri elementi vengono visualizzati nel menu extra. |
withText | Includi anche il testo del titolo (definito di android:title ) con l'attività. Puoi includere questo valore insieme a uno degli altri come flag impostato separandoli con una barra verticale | . |
never | Non inserire mai questo elemento nella barra delle app. Indica invece l'elemento nell'overflow della barra delle app o dal menu Fogli Google. |
always | Posiziona sempre questo elemento nella barra delle app. Evita di usarlo, a meno che non sia fondamentale che l'elemento compaia sempre nell'azione . L'impostazione di più elementi in modo che vengano sempre visualizzati come attività può comportare la loro sovrapposizione. con un'altra UI nella barra delle app. |
collapseActionView | La visualizzazione azioni associata con questa attività (come dichiarata da android:actionLayout o android:actionViewClass ) è comprimibile. Introdotto nel livello API 14. |
Consulta la sezione Aggiungere la barra delle app. per ulteriori informazioni.
Introdotto nel livello API 11.
android:actionLayout
- Risorsa di layout. Un layout da utilizzare come visualizzazione dell'azione.
Per ulteriori informazioni, consulta la sezione Utilizzare l'azione di viste e azioni.
Introdotto nel livello API 11.
android:actionViewClass
- Nome del corso. Un nome completo del corso per
View
da usare come visualizzazione delle azioni. Ad esempio: "android.widget.SearchView"
per usare SearchView
come visualizzazione azione. Per ulteriori informazioni, consulta la sezione Utilizzare l'azione di viste e azioni.
Avviso:se offuschi il codice utilizzando ProGuard o uno strumento simile, assicurati di escludere la classe specificata in questo attributo dalla ridenominazione, poiché potrebbe interrompere funzionalità.
Introdotto nel livello API 11.
android:actionProviderClass
- Nome del corso. Un nome completo della classe che
ActionProvider
può utilizzare al posto dell'attività. Ad esempio: "android.widget.ShareActionProvider"
per utilizzare ShareActionProvider
. Per ulteriori informazioni, consulta la sezione Utilizzare l'azione di viste e azioni.
Avviso:se offuschi il codice utilizzando ProGuard o uno strumento simile, assicurati di escludere la classe specificata in questo attributo dalla ridenominazione, poiché potrebbe interrompere funzionalità.
Introdotto nel livello API 14.
android:alphabeticShortcut
- carattere. Un carattere per la scorciatoia da tastiera alfabetica.
android:numericShortcut
- Numero intero. Un numero per la scorciatoia da tastiera numerica.
android:alphabeticModifiers
- Parola chiave. Un modificatore per l'alfabeto della voce del menu scorciatoia. Il valore predefinito corrisponde al campo Controllo chiave. Valori validi:
Valore | Descrizione |
META | Corrisponde alla meta chiave Meta. |
CTRL | Corrisponde alla metachiave Controllo. |
ALT | Corrisponde alla meta-chiave Alt. |
MAIUSC | Corrisponde al meta-tasto Maiusc. |
SISTEMA | Corrisponde alla meta chiave Sym. |
FUNZIONE | Corrisponde al meta tasto Funzione. |
Nota: puoi specificare più parole chiave in una . Ad esempio: android:alphabeticModifiers="CTRL|SHIFT"
indica per attivare la voce di menu corrispondente, l'utente deve premi entrambi i tasti meta Ctrl e Maiusc insieme con la scorciatoia.
Puoi usare il metodo setAlphabeticShortcut()
per e impostare i valori degli attributi in modo programmatico. Per ulteriori informazioni sull'attributo alphabeticModifier
, consulta alphabeticModifiers
.
android:numericModifiers
- Parola chiave. Un modificatore per la scorciatoia numerica della voce di menu. Il valore predefinito corrisponde al tasto Ctrl. Valido valori:
Valore | Descrizione |
META | Corrisponde alla meta chiave Meta. |
CTRL | Corrisponde alla metachiave Controllo. |
ALT | Corrisponde alla meta-chiave Alt. |
MAIUSC | Corrisponde al meta-tasto Maiusc. |
SISTEMA | Corrisponde alla meta chiave Sym. |
FUNZIONE | Corrisponde al meta tasto Funzione. |
Nota: puoi specificare più parole chiave in una . Ad esempio: android:numericModifiers="CTRL|SHIFT"
indica per attivare la voce di menu corrispondente, l'utente deve premi entrambi i tasti meta Ctrl e Maiusc insieme con la scorciatoia.
Puoi usare il metodo setNumericShortcut()
per impostare l'attributo in modo programmatico. Per ulteriori informazioni l'attributo numericModifier
, consulta numericModifiers
.
android:checkable
- Booleano. True se l'elemento è controllabile.
android:checked
- Booleano. True se l'elemento è selezionato per impostazione predefinita.
android:visible
- Booleano. True se l'elemento è visibile per impostazione predefinita.
android:enabled
- Booleano. True se l'elemento è abilitato per impostazione predefinita.
android:menuCategory
- Parola chiave. Valore corrispondente a
Menu
CATEGORY_*
costanti, che definiscono la priorità dell'elemento. Valori validi: Valore | Descrizione |
container | Per gli elementi che fanno parte di un containerizzato. |
system | Per gli elementi forniti di un sistema operativo completo. |
secondary | Per gli elementi secondari forniti dall'utente (utilizzate raramente). |
alternative | Per gli elementi che rappresentano azioni alternative sui dati attualmente visualizzati. |
android:orderInCategory
- Numero intero. L'ordine di importanza degli elementi in un gruppo.
<group>
- Un gruppo di menu, per creare una raccolta di elementi che condividono caratteristiche, ad esempio se sono visibili, attivate o selezionabili. Contiene uno o più elementi
<item>
. Deve essere un secondario di un elemento <menu>
. Attributi:
android:id
- ID risorsa. Un ID risorsa univoco. Per creare un nuovo ID risorsa per questo elemento, utilizza il modulo:
"@+id/name"
. Il simbolo più indica che viene creato come nuovo ID. android:checkableBehavior
- Parola chiave. Il tipo di comportamento selezionabile per il gruppo. Valori validi:
Valore | Descrizione |
none | Non selezionabile. |
all | Puoi selezionare tutti gli elementi (utilizza le caselle di controllo). |
single | È possibile selezionare un solo elemento (usa la radio ). |
android:visible
- Booleano. True se il gruppo è visibile.
android:enabled
- Booleano. True se il gruppo è abilitato.
android:menuCategory
- Parola chiave. Valore corrispondente a
Menu
CATEGORY_*
costanti, che definiscono la priorità del gruppo. Valori validi: Valore | Descrizione |
container | Per i gruppi che fanno parte di un containerizzato. |
system | Per i gruppi forniti di un sistema operativo completo. |
secondary | Per i gruppi secondari forniti dall'utente (utilizzate raramente). |
alternative | Per i gruppi che sono azioni alternative sui dati attualmente visualizzati. |
android:orderInCategory
- Numero intero. L'ordine predefinito degli articoli nella categoria.
- esempio:
- File XML salvato alle ore
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>
Il seguente codice dell'applicazione gonfia il menu dal callback onCreateOptionsMenu(Menu)
e dichiara anche l'azione al clic per due elementi:
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. }
I campioni di contenuti e codice in questa pagina sono soggetti alle licenze descritte nella Licenza per i contenuti. Java e OpenJDK sono marchi o marchi registrati di Oracle e/o delle sue società consociate.
Ultimo aggiornamento 2025-07-29 UTC.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Mancano le informazioni di cui ho bisogno","missingTheInformationINeed","thumb-down"],["Troppo complicato/troppi passaggi","tooComplicatedTooManySteps","thumb-down"],["Obsoleti","outOfDate","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Problema relativo a esempi/codice","samplesCodeIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2025-07-29 UTC."],[],[]]