Zdroj nabídky definuje nabídku aplikace (nabídku možností, kontextovou nabídku nebo podnabídku), kterou lze nafouknout pomocí MenuInflater
.
Průvodce používáním nabídek naleznete v příručce Menusdeveloper.
umístění souboru:res/menu/filename.xml
Jméno souboru bude použito jako ID prostředku. zkompilovaný datový typ prostředku: Ukazatel na prostředekMenu
(nebo podtřídu). odkaz na prostředek: V jazyce Java:R.menu.filename
V jazyce XML:@menu.filename
Syntaxe: elementy:<menu>
Povinné. Musí se jednat o kořenový uzel. Obsahuje prvky<item>
a/nebo<group>
.
atributy:
xmlns:android
jmenný prostor XML. Povinné. Definuje jmenný prostor XML, kterýmusí být"http://schemas.android.com/apk/res/android"
.<item>
Prvek nabídky. Může obsahovat prvek<menu>
(pro dílčí nabídku). Musí být potomkem prvku<menu>
nebo<group>
.
atributy:
android:id
ID zdroje. Jedinečné ID prostředku. Chcete-li pro tento prvek vytvořit nové ID prostředku, použijte formulář:"@+id/name"
. Symbol plus označuje, že má být vytvořen jako newID.android:title
Řetězcový zdroj. Název nabídky jako řetězcový zdroj nebo surový řetězec.android:titleCondensed
Řetězcový zdroj. Zkrácený název jako řetězcový prostředek nebo surový řetězec. Tento název se používá v situacích, kdy je normální název příliš dlouhý.android:icon
Drawable resource (kreslitelný zdroj). Obrázek, který se použije jako ikona položky nabídky.android:onClick
Název metody. Metoda, která se zavolá při kliknutí na tuto položku nabídky. Metoda musí být v aktivitě deklarována jako veřejná a jako jediný parametr musí přijímatMenuItem
, který označuje položku, na kterou bylo kliknuto. Tato metoda má přednost před standardní zpětnou vazbou naonOptionsItemSelected()
. Viz příklad v dolní části.
Upozornění: Pokud kód obfuskujete pomocí nástroje ProGuard (nebo podobného nástroje),nezapomeňte vyloučit metodu uvedenou v tomto atributu z přejmenování, protože to může narušit funkčnost.
Zavedeno v API úrovně 11.
android:showAsAction
Klíčové slovo. Kdy a jak se má tato položka zobrazit jako položka akce na panelu aplikací. Položka nabídky se může zobrazit jako akční položka pouze v případě, že aktivita obsahuje panel aplikací. Platné hodnoty:
Hodnota | Popis |
---|---|
ifRoom |
Tuto položku umístěte do panelu aplikací pouze tehdy, je-li pro ni místo. Pokud není místo pro všechny položky označené "ifRoom" , zobrazí se jako akce položky s nejnižšími hodnotami orderInCategory a ostatní položky se zobrazí v přetékající nabídce. |
withText |
K položce akce patří také text názvu (definovaný pomocí android:title ). Tuto hodnotu můžete zahrnout spolu s jednou z ostatních jako sadu příznaků, a to tak, že je oddělíte fajfkou | . |
never |
Nikdy tuto položku neumisťujte do panelu aplikací. Místo toho položku uveďte v přetékající nabídce panelu aplikací. |
always |
Vždy umístěte tuto položku na panel aplikací. vyhněte se použití této možnosti, pokud není rozhodující, aby se položka vždy zobrazovala na panelu akcí. Nastavení více položek tak, aby se vždy zobrazovaly jako položky akce, může vést k jejich překrývánís ostatními uživatelskými rozhraními na panelu aplikací. |
collapseActionView |
Zobrazení akce spojenés touto položkou akce (deklarované pomocí android:actionLayout neboandroid:actionViewClass ) jeskládací.Zavedeno v API úrovně 14. |
Další informace naleznete ve výukové třídě Přidání panelu aplikací.
Zavedeno v API úrovně 11.
android:actionLayout
Prostředek rozvržení. Rozložení, které se použije jako akční zobrazení.
Další informace naleznete v části Zobrazení akcí a zprostředkovatelé akcí.
Zavedeno v API Level 11.
android:actionViewClass
Název třídy. Plně kvalifikovaný název třídy proView
použití jako akčního zobrazení. Například"android.widget.SearchView"
pro použitíSearchView
jako akčního zobrazení.
Další informace naleznete v části Zobrazení akcí a zprostředkovatelé akcí.
Upozornění: Pokud kód obfuskujete pomocí nástroje ProGuard (nebo podobného nástroje),nezapomeňte vyloučit třídu zadanou v tomto atributu z přejmenování, protože to může narušit funkčnost.
Zavedeno v úrovni API 11.
android:actionProviderClass
Název třídy. Plně kvalifikovaný název třídyActionProvider
, který se použije místo položky akce. Například"android.widget.ShareActionProvider"
pro použitíShareActionProvider
.
Další informace naleznete v části Zobrazení akcí a zprostředkovatelé akcí.
Upozornění: Pokud kód obfuskujete pomocí nástroje ProGuard (nebo podobného nástroje),nezapomeňte vyloučit třídu zadanou v tomto atributu z přejmenování, protože to může narušit funkčnost.
Zavedeno v API úrovně 14.
android:alphabeticShortcut
Znak. Znak pro abecední klávesovou zkratku.android:numericShortcut
Celé číslo. Číslo pro číselnou klávesovou zkratku.android:alphabeticModifiers
Klíčové slovo. Modifikátor pro abecední klávesovou zkratku položky nabídky. Výchozí hodnota odpovídá klávese Control. Platné hodnoty:
Hodnota | Popis |
---|---|
META |
Odpovídá meta klávese Meta |
CTRL | Odpovídá meta klávese Control |
ALT | Odpovídá Alt metaklávesa |
SHIFT | Odpovídá metaklávese Shift |
SYM | Odpovídá metaklávese Sym |
FUNCTION | Odpovídá metaklávese Function |
Poznámka: V atributu můžete zadat více klíčových slov. Například android:alphabeticModifiers="CTRL|SHIFT"
označuje, že pro spuštění příslušné položky nabídky musí uživatel spolu s klávesovou zkratkou stisknout i metaklávesy Control a Shift.
Pro programové nastavení hodnot atributů můžete použít metodu setAlphabeticShortcut()
. Další informace o atributu alphabeticModifier
naleznete na stránce alphabeticModifiers
.
android:numericModifiers
Klíčové slovo. Modifikátor číselné zkratky položky nabídky. Výchozí hodnota odpovídá klávese Control. Platné hodnoty:
Hodnota | Popis |
---|---|
META | Odpovídá metaklíči Meta |
CTRL | Odpovídá metaklávese Control |
ALT | Odpovídá metaklávese Alt klávesa |
SHIFT | Odpovídá meta klávese Shift |
SYM | Odpovídá metaklávese Sym |
FUNCTION | Odpovídá metaklávese Function |
Poznámka: V atributu můžete zadat více klíčových slov. Například android:numericModifiers="CTRL|SHIFT"
označuje, že pro spuštění příslušné položky nabídky musí uživatel spolu s klávesovou zkratkou stisknout i metaklávesy Control a Shift.
Pro programové nastavení hodnot atributů můžete použít metodu setNumericShortcut()
. Další informace o atributu numericModifier
naleznete na stránce numericModifiers
.
android:checkable
Boolean. „true“, pokud je položka kontrolovatelná.android:checked
Boolean. „true“, pokud je položka ve výchozím nastavení zaškrtnuta.android:visible
Boolean. „true“, pokud je položka ve výchozím nastavení viditelná.android:enabled
Logická hodnota. „true“, pokud je položka ve výchozím nastavení povolena.android:menuCategory
Klíčové slovo. Hodnota odpovídající konstantámMenu
CATEGORY_*
, které určují prioritu položky. Platné hodnoty:
Hodnota | Popis |
---|---|
container |
Pro položky, které jsou součástí kontejneru. |
system |
Pro položky, které poskytuje systém. |
secondary |
Pro položky, které jsou sekundárními(zřídka používanými) možnostmi dodávanými uživatelem. |
alternative |
Pro položky, které jsou alternativními akcemina aktuálně zobrazená data. |
android:orderInCategory
Celé číslo. Pořadí „důležitosti“ položky, v rámci skupiny.<group>
Skupina nabídek (pro vytvoření kolekce položek, které mají společné znaky, například zda jsouviditelné, povolené nebo zaškrtnutelné). Obsahuje jeden nebo více prvků<item>
. Musí být dítětem prvku<menu>
.
atributy:
android:id
ID zdroje. Jedinečné ID prostředku. Chcete-li pro tento prvek vytvořit nové ID prostředku,použijte formulář:"@+id/name"
. Symbol plus označuje, že má být vytvořen jako newID.android:checkableBehavior
Klíčové slovo. Typ kontrolovatelného chování pro skupinu. Platné hodnoty:
Hodnota | Popis |
---|---|
none |
Není kontrolovatelné |
all |
Všechny položky. lze zaškrtnout (použít zaškrtávací políčka) |
single |
Lze zaškrtnout pouze jednu položku (použít radiobutton) |
android:visible
Boolean. „true“, pokud je skupina viditelná.android:enabled
Boolean. „true“, pokud je skupina povolena.android:menuCategory
Klíčové slovo. Hodnota odpovídající konstantámMenu
CATEGORY_*
, které definují prioritu skupiny. Platné hodnoty:
Hodnota | Popis |
---|---|
container |
Pro skupiny, které jsou součástí kontejneru. |
system |
Pro skupiny, které poskytuje systém. |
secondary |
Pro skupiny, které jsou uživatelem dodanými sekundárními(zřídka používanými) možnostmi. |
alternative |
Pro skupiny, které jsou alternativními akcemina aktuálně zobrazená data. |
android:orderInCategory
Celé číslo. Výchozí pořadí položek v rámci kategorie. příklad: XML soubor uložený na adreseres/menu/example_menu.xml
:
Následující kód aplikace naplní nabídku ze zpětného volání onCreateOptionsMenu(Menu)
a také deklaruje zpětné volání při kliknutí pro dvě z položek:
.