Zasób menu definiuje menu aplikacji (menu opcji, menu kontekstowe lub podmenu), które może być nadmuchane za pomocą MenuInflater
.
W celu uzyskania przewodnika na temat używania menu, zobacz przewodnik Menusdeveloper.
lokalizacja pliku:res/menu/filename.xml
Nazwa pliku zostanie użyta jako identyfikator zasobu. compiled resource datatype: Wskaźnik zasobu do zasobuMenu
(lub podklasy). resource reference: W języku Java:R.menu.filename
W XML:@menu.filename
składnia: elementy:<menu>
Wymagane. To musi być węzeł główny. Zawiera elementy<item>
i/lub<group>
.
atrybuty:
xmlns:android
Przestrzeń nazw XML. Wymagane. Określa przestrzeń nazw XML, która musi być"http://schemas.android.com/apk/res/android"
.<item>
Element menu. Może zawierać element<menu>
(dla podmenu). Musi być elementem potomnym elementu<menu>
lub<group>
.
atrybuty:
android:id
Identyfikator zasobu. Unikalny identyfikator zasobu. Aby utworzyć nowy identyfikator zasobu dla tego elementu, należy użyć formularza:"@+id/name"
. Symbol plusa oznacza, że powinien zostać utworzony jako nowy identyfikator.android:title
Zasób łańcuchowy. Tytuł menu w postaci zasobu łańcuchowego lub surowego łańcucha znaków.android:titleCondensed
Zasób łańcuchowy. Skrócony tytuł w postaci zasobu łańcuchowego lub surowego łańcucha. Tytuł ten jest używany w sytuacjach, w których normalny tytuł jest zbyt długi.android:icon
Zasób Drawable. Obrazek, który ma być wykorzystany jako ikona pozycji menu.android:onClick
Nazwa metody. Metoda, która ma zostać wywołana po kliknięciu tej pozycji menu. Metoda musi być zadeklarowana w aktywności jako publiczna i przyjmowaćMenuItem
jako swój jedyny parametr, który wskazuje na kliknięty element. Ta metoda ma pierwszeństwo przed standardowym wywołaniem zwrotnym doonOptionsItemSelected()
. Zobacz przykład na dole.
Ostrzeżenie: Jeśli obfuscate swój kod za pomocą ProGuard (lub podobnego narzędzia),upewnij się, aby wykluczyć metodę, którą określasz w tym atrybucie, ze zmiany nazwy, ponieważ może to złamać funkcjonalność.
Introduced in API Level 11.
android:showAsAction
Keyword. Kiedy i w jaki sposób ten element powinien pojawiać się jako element akcji na pasku aplikacji. Pozycja menu może pojawić się jako pozycja akcji tylko wtedy, gdy czynność zawiera pasek aplikacji. Prawidłowe wartości:
Value | Description |
---|---|
ifRoom |
Tylko umieszczaj ten element na pasku aplikacji, jeśli jest na niego miejsce. Jeśli nie ma miejsca dla wszystkich elementów oznaczonych "ifRoom" , elementy o najniższych wartościach orderInCategory są wyświetlane jako akcje, a pozostałe elementy są wyświetlane w menu przepełnienia. |
withText |
Dołącz także tekst tytułu (zdefiniowany przez android:title ) do elementu akcji. Możesz dołączyć tę wartość wraz z jedną z pozostałych jako zestaw flag, oddzielając je za pomocą rury | . |
never |
Nigdy nie umieszczaj tego elementu w pasku aplikacji. Zamiast tego wymień ten element w menu przepełnienia paska aplikacji. |
always |
Zawsze umieszczaj ten element na pasku aplikacji.Unikaj używania tej opcji, chyba że jest bardzo ważne, aby element zawsze był wyświetlany na pasku akcji. Ustawienie wielu elementów tak, aby zawsze pojawiały się jako elementy akcji, może spowodować ich nakładanie się z innymi elementami UI na pasku aplikacji. |
collapseActionView |
Widok akcji związany z tym elementem akcji (zadeklarowany przez android:actionLayout lubandroid:actionViewClass ) jest zwijany.Wprowadzony na poziomie API 14. |
Zobacz klasę szkoleniową Dodawanie paska aplikacji, aby uzyskać więcej informacji.
Wprowadzony na poziomie API 11.
android:actionLayout
Zasób układu. Układ do użycia jako widok akcji.
Zobacz Widoki akcji i Dostawcy akcji, aby uzyskać więcej informacji.
Wprowadzono w API Level 11.
android:actionViewClass
Nazwa klasy. W pełni kwalifikowana nazwa klasy dlaView
do użycia jako widok akcji. Na przykład"android.widget.SearchView"
, aby użyćSearchView
jako widoku akcji.
Zobacz Action Views i Action Providers, aby uzyskać więcej informacji.
Ostrzeżenie: Jeśli obfuscate swój kod za pomocą ProGuard (lub podobnego narzędzia),upewnij się, aby wykluczyć klasę, którą określasz w tym atrybucie ze zmiany nazwy, ponieważ może to złamać funkcjonalność.
Wprowadzone w API Level 11.
android:actionProviderClass
Nazwa klasy. W pełni kwalifikowana nazwa klasy dlaActionProvider
do użycia w miejsce elementu akcji. Na przykład"android.widget.ShareActionProvider"
, aby użyćShareActionProvider
.
Zobacz Action Views i Action Providers, aby uzyskać więcej informacji.
Ostrzeżenie: Jeśli obfuscate swój kod za pomocą ProGuard (lub podobnego narzędzia),upewnij się, aby wykluczyć klasę, którą określasz w tym atrybucie ze zmiany nazwy, ponieważ może to złamać funkcjonalność.
Introduced in API Level 14.
android:alphabeticShortcut
Char. Znak dla alfabetycznego klucza skrótu.android:numericShortcut
Integer. Liczba dla numerycznego klawisza skrótu.android:alphabeticModifiers
Keyword. Modyfikator skrótu alfabetycznego dla pozycji menu. Wartość domyślna odpowiada klawiszowi Control. Prawidłowe wartości:
Value | Description |
---|---|
META |
Odpowiada kluczowi meta Meta |
CTRL | Odpowiada klawiszowi meta Control |
ALT | Odpowiada klawiszowi meta Alt meta |
SHIFT | Odpowiada klawiszowi meta Shift |
SYM | Odpowiada klawiszowi meta do klucza meta Sym |
FUNCTION | Odpowiada kluczowi meta Function |
Uwaga: Można określić wiele słów kluczowych w atrybucie. Na przykład android:alphabeticModifiers="CTRL|SHIFT"
wskazuje, że aby wywołać odpowiedni element menu, użytkownik musi nacisnąć oba klawisze meta Control i Shift wraz ze skrótem klawiszowym.
Możesz użyć metody setAlphabeticShortcut()
, aby programowo ustawić wartości atrybutów. Aby uzyskać więcej informacji na temat atrybutu alphabeticModifier
, przejdź do alphabeticModifiers
.
android:numericModifiers
Słowo kluczowe. Modyfikator skrótu numerycznego pozycji menu. Wartość domyślna odpowiada klawiszowi Control. Prawidłowe wartości:
Value | Description |
---|---|
META | Odpowiada kluczowi meta Meta |
CTRL | Odpowiada meta-kluczowi Control |
ALT | Odpowiada meta-kluczowi Alt |
SHIFT | Odpowiada meta klawiszowi Shift |
SYM | Odpowiada do klucza meta Sym |
FUNCTION | Odpowiada kluczowi meta Function |
Uwaga: Można określić wiele słów kluczowych w atrybucie. Na przykład android:numericModifiers="CTRL|SHIFT"
wskazuje, że aby wywołać odpowiedni element menu, użytkownik musi nacisnąć oba klawisze meta Control i Shift wraz ze skrótem klawiszowym.
Możesz użyć metody setNumericShortcut()
, aby programowo ustawić wartości atrybutów. Aby uzyskać więcej informacji na temat atrybutu numericModifier
, przejdź do numericModifiers
.
android:checkable
Boolean. „true”, jeśli element jest sprawdzalny.android:checked
Boolean. „true” jeśli element jest domyślnie sprawdzany.android:visible
Boolean. „true”, jeśli element jest domyślnie widoczny.android:enabled
Boolean. „true”, jeśli element jest domyślnie włączony.android:menuCategory
Słowo kluczowe. Wartość odpowiadająca stałymMenu
CATEGORY_*
, które określają priorytet elementu. Prawidłowe wartości:
Value | Description |
---|---|
container |
Dla elementów, które są częścią acontainer. |
system |
Dla elementów, które są dostarczane przezsystem. |
secondary |
Dla elementów, które są drugorzędnymi (rzadko używanymi) opcjami dostarczonymi przez użytkownika. |
alternative |
Dla elementów, które są alternatywnymi działaniami na aktualnie wyświetlanych danych. |
android:orderInCategory
Integer. Kolejność „ważności” pozycji, w ramach grupy.<group>
Grupa menu (do tworzenia zbioru elementów, które mają wspólne cechy, takie jak to, czy są widoczne, włączone lub sprawdzalne). Zawiera jeden lub więcej elementów<item>
. Musi być achildem elementu<menu>
.
atrybuty:
android:id
Identyfikator zasobu. Unikalny identyfikator zasobu. Aby utworzyć nowy identyfikator zasobu dla tego elementu, należy użyć formularza:"@+id/name"
. Symbol plusa oznacza, że należy go utworzyć jako nowy identyfikator.android:checkableBehavior
Słowo kluczowe. Typ zachowania podlegającego sprawdzeniu dla grupy. Prawidłowe wartości:
Wartość | Opis |
---|---|
none |
Nie podlega sprawdzaniu |
all |
Wszystkie elementy. mogą być zaznaczone (użyj checkboxów) |
single |
Tylko jeden element może być zaznaczony (użyj radiobuttonów) |
android:visible
Boolean. „true” jeśli grupa jest widoczna.android:enabled
Boolean. „true”, jeśli grupa jest włączona.android:menuCategory
Słowo kluczowe. Wartość odpowiadająca stałymMenu
CATEGORY_*
, które określają priorytet grupy. Prawidłowe wartości:
Value | Description |
---|---|
container |
Dla grup, które są częścią acontainer. |
system |
Dla grup, które są dostarczane przezsystem. |
secondary |
Dla grup, które są drugorzędnymi (rzadko używanymi) opcjami dostarczonymi przez użytkownika. |
alternative |
Dla grup, które są alternatywnymi działaniami na aktualnie wyświetlanych danych. |
android:orderInCategory
Integer. Domyślna kolejność elementów w ramach kategorii. przykład: Plik XML zapisany pod adresemres/menu/example_menu.xml
:
Następujący kod aplikacji nadmuchuje menu z wywołania zwrotnego onCreateOptionsMenu(Menu)
, a także deklaruje wywołanie zwrotne on-clickcallback dla dwóch z pozycji:
.