Zasób menu
Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
Zasób menu definiuje menu aplikacji (menu opcji, menu kontekstowe lub podmenu), które
można powiększyć za pomocą MenuInflater
.
Wskazówki dotyczące korzystania z menu znajdziesz w artykule Dodawanie menu.
- lokalizacja pliku:
res/menu/filename.xml
(- )
Nazwa pliku jest używana jako identyfikator zasobu
- skompilowany typ danych zasobu:
- Wskaźnik zasobu do zasobu
Menu
(lub podklasy)
- odniesienie do zasobu:
-
W języku Java:
R.menu.filename
W pliku XML: @[package:]menu.filename
- składnia:
-
<?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>
- elementy:
-
- Wymagane. Musi to być węzeł główny. Zawiera
<item>
lub
<group>
elementów.
Atrybuty:
xmlns:android
- Przestrzeń nazw XML. Wymagane. Definiuje przestrzeń nazw XML, która
musi wynosić
"http://schemas.android.com/apk/res/android"
.
<item>
- Pozycja w menu. Może zawierać element
<menu>
(dotyczy menu podrzędnego).
Musi być elementem podrzędnym elementu <menu>
lub <group>
.
Atrybuty:
android:id
- Identyfikator zasobu. Unikalny identyfikator zasobu. Aby utworzyć nowy identyfikator zasobu dla tego elementu, użyj formularza:
"@+id/name"
Symbol plusa oznacza, że jest ona utworzona jako nowy
ID.
android:title
- Zasób ciągu znaków. Tytuł menu w postaci zasobu tekstowego lub nieprzetworzonego ciągu znaków.
android:titleCondensed
- Zasób ciągu znaków. Skrócony tytuł w postaci zasobu tekstowego lub nieprzetworzonego ciągu. Ten
tytuł jest używany w sytuacjach, gdy zwykły tytuł jest za długi.
android:icon
- Zasób rysowalny. Obraz, który ma służyć jako ikona pozycji menu.
android:onClick
- Nazwa metody. Metoda wywoływania po kliknięciu tego elementu menu.
musi być zadeklarowana w aktywności jako publiczna. Akceptuje ona
MenuItem
jako
, który wskazuje kliknięty element. Ta metoda ma pierwszeństwo przed standardową metodą
oddzwanianie do onOptionsItemSelected()
. Zobacz
na końcu tej strony.
Ostrzeżenie: jeśli zaciemniasz kod za pomocą ProGuard lub podobnego narzędzia,
pamiętaj, aby wykluczyć metodę określoną w tym atrybucie ze zmiany nazwy, ponieważ może to spowodować
funkcji.
Wprowadzono w interfejsie API poziomu 11.
android:showAsAction
- Słowo kluczowe. Kiedy i jak ten element pojawia się jako działanie w aplikacji
przeglądarki. Działanie w menu może się pojawić tylko wtedy, gdy aktywność zawiera
na pasku aplikacji. Prawidłowe wartości:
Wartość | Opis |
ifRoom | Umieść ten element tylko w
pasek aplikacji, o ile jest na to miejsce. Jeśli nie ma miejsca dla wszystkich
elementy oznaczone etykietą "ifRoom" , czyli elementy z najniższą
Wartości orderInCategory są wyświetlane jako działania,
Pozostałe elementy wyświetlają się w rozszerzonym menu. |
withText | Dołącz też tekst tytułu (zdefiniowany
do android:title ) z działaniem. Możesz podać tę wartość razem z jednym
pozostałych jako flagę, oddzielając je pionową kreską | . |
never | Nigdy nie umieszczaj tego elementu na pasku aplikacji. Zamiast tego wymień element w rozszerzeniu paska aplikacji
. |
always | Zawsze umieszczaj ten element na pasku aplikacji.
Nie używaj jej, chyba że jest konieczne, aby element zawsze pojawiał się w działaniu
przeglądarki. Jeśli ustawisz kilka elementów tak, by były zawsze widoczne jako działania, mogą się one nakładać
z innym interfejsem na pasku aplikacji. |
collapseActionView | Powiązany widok działań
z tym działaniem (zgodnie z deklaracją android:actionLayout lub
android:actionViewClass ) to
zwijane. Wprowadzono w interfejsie API na poziomie 14. |
Zobacz Dodawanie paska aplikacji.
.
Wprowadzono w interfejsie API poziomu 11.
android:actionLayout
- Zasób układu. Układ używany jako widok działań.
Więcej informacji znajdziesz w artykule Korzystanie z działania
dostawców wyświetleń i działań.
Wprowadzono w interfejsie API poziomu 11.
android:actionViewClass
- Nazwa zajęć. Pełna i jednoznaczna nazwa zajęć dla:
View
który ma być używany jako widok działań. Przykład:
"android.widget.SearchView"
, aby użyć widoku SearchView
jako widoku działań.
Więcej informacji znajdziesz w artykule Korzystanie z działania
dostawców wyświetleń i działań.
Ostrzeżenie: jeśli zaciemniasz kod za pomocą ProGuard lub podobnego narzędzia,
pamiętaj, aby wykluczyć klasę określoną w tym atrybucie ze zmiany nazwy, ponieważ może to spowodować uszkodzenie
funkcji.
Wprowadzono w interfejsie API poziomu 11.
android:actionProviderClass
- Nazwa zajęć. Pełna i jednoznaczna nazwa klasy, której
ActionProvider
ma używać zamiast działania. Przykład:
"android.widget.ShareActionProvider"
, aby użyć aplikacji ShareActionProvider
.
Więcej informacji znajdziesz w artykule Korzystanie z działania
dostawców wyświetleń i działań.
Ostrzeżenie: jeśli zaciemniasz kod za pomocą ProGuard lub podobnego narzędzia,
pamiętaj, aby wykluczyć klasę określoną w tym atrybucie ze zmiany nazwy, ponieważ może to spowodować uszkodzenie
funkcji.
Wprowadzono w interfejsie API poziomu 14.
android:alphabeticShortcut
- Char. Znak alfabetycznego klawisza skrótu.
android:numericShortcut
- Liczba całkowita. Liczba będąca cyfrą klawisza skrótu.
android:alphabeticModifiers
- Słowo kluczowe. Modyfikator alfabetycznego elementu menu
skrótu. Wartość domyślna odpowiada wartości Control
. Prawidłowe wartości:
Wartość | Opis |
META |
Odpowiada meta klawiszowi Meta. |
CTRL |
Odpowiada klawiszowi meta Control. |
ALT |
Odpowiada klawiszowi meta Alt. |
SHIFT |
Odpowiada klawiszowi meta Shift. |
SYM |
Odpowiada meta klawiszowi Sym. |
FUNKCJA |
Odpowiada klawiszowi meta Funkcja. |
Uwaga: w jednej kolumnie
. Przykład:
android:alphabeticModifiers="CTRL|SHIFT"
oznacza
aby aktywować odpowiednią pozycję menu, użytkownik musi
naciśnij jednocześnie klawisze meta Control i Shift
za pomocą skrótu.
Możesz użyć metody setAlphabeticShortcut()
do:
ustawiać wartości atrybutów w sposób automatyczny. Więcej informacji na temat konfiguracji
o atrybucie alphabeticModifier
, zobacz
alphabeticModifiers
android:numericModifiers
- Słowo kluczowe. Modyfikator skrótu liczbowego elementu menu.
Wartość domyślna odpowiada klawiszowi Control. Prawidłowa
wartości:
Wartość | Opis |
META |
Odpowiada meta klawiszowi Meta. |
CTRL |
Odpowiada klawiszowi meta Control. |
ALT |
Odpowiada klawiszowi meta Alt. |
SHIFT |
Odpowiada klawiszowi meta Shift. |
SYM |
Odpowiada meta klawiszowi Sym. |
FUNKCJA |
Odpowiada klawiszowi meta Funkcja. |
Uwaga: w jednej kolumnie
. Przykład:
android:numericModifiers="CTRL|SHIFT"
oznacza
aby aktywować odpowiednią pozycję menu, użytkownik musi
naciśnij jednocześnie klawisze meta Control i Shift
za pomocą skrótu.
Aby ustawić, możesz użyć metody setNumericShortcut()
wartości atrybutów. Więcej informacji na temat:
numericModifier
, zobacz
numericModifiers
android:checkable
- Wartość logiczna. Prawda, jeśli element jest możliwy do zaznaczenia.
android:checked
- Wartość logiczna. Prawda, jeśli element jest domyślnie zaznaczony.
android:visible
- Wartość logiczna. Prawda, jeśli element jest domyślnie widoczny.
android:enabled
- Wartość logiczna. Prawda, jeśli element jest domyślnie włączony.
android:menuCategory
- Słowo kluczowe. Wartość odpowiadająca
Menu
CATEGORY_*
stałe, które określają priorytet elementu. Prawidłowe wartości:
Wartość | Opis |
container | W przypadku elementów, które są częścią
kontenera. |
system | W przypadku produktów dostarczanych przez
systemu. |
secondary | W przypadku elementów, które zostały przekazane przez użytkownika jako dodatkowe
(rzadko używane). |
alternative | Elementy, które są działaniami alternatywnymi
na obecnie wyświetlanych danych. |
android:orderInCategory
- Liczba całkowita. Kolejność ważności elementu w grupie.
<group>
- Grupa menu umożliwiająca utworzenie kolekcji pozycji o wspólnych cechach, takich jak
widoczne, włączone
lub możliwe do wyboru. Zawiera co najmniej 1 element
<item>
. Musi to być
element podrzędny elementu <menu>
.
Atrybuty:
android:id
- Identyfikator zasobu. Unikalny identyfikator zasobu. Aby utworzyć nowy identyfikator zasobu dla tego elementu,
użyj formularza:
"@+id/name"
Symbol plusa oznacza, że jest ona utworzona jako nowy
ID.
android:checkableBehavior
- Słowo kluczowe. Typ działania, które można wybrać w przypadku grupy. Prawidłowe wartości:
Wartość | Opis |
none | Nie można wybrać. |
all | Możesz zaznaczyć wszystkie elementy (użyj pól wyboru). |
single | Możesz wybrać tylko jeden element (użyj opcji
). |
android:visible
- Wartość logiczna. Prawda, jeśli grupa jest widoczna.
android:enabled
- Wartość logiczna. Prawda, jeśli grupa jest włączona.
android:menuCategory
- Słowo kluczowe. Wartość odpowiadająca
Menu
CATEGORY_*
stałych, które określają priorytet grupy. Prawidłowe wartości:
Wartość | Opis |
container | W przypadku grup, które są częścią
kontenera. |
system | W przypadku grup dostarczanych przez
systemu. |
secondary | Dla grup przekazanych przez użytkowników jako dodatkowych
(rzadko używane). |
alternative | Dla grup, które są działaniami alternatywnymi
na obecnie wyświetlanych danych. |
android:orderInCategory
- Liczba całkowita. Domyślna kolejność elementów w kategorii.
- przykład:
- Plik XML zapisany o
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>
Poniższy kod aplikacji rozszerza menu z wywołania zwrotnego onCreateOptionsMenu(Menu)
i deklaruje metodę kliknięcia
zwrotny dla dwóch z tych elementów:
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.
}
Treść strony i umieszczone na niej fragmenty kodu podlegają licencjom opisanym w Licencji na treści. Java i OpenJDK są znakami towarowymi lub zastrzeżonymi znakami towarowymi należącymi do firmy Oracle lub jej podmiotów stowarzyszonych.
Ostatnia aktualizacja: 2024-09-20 UTC.
[[["Łatwo zrozumieć","easyToUnderstand","thumb-up"],["Rozwiązało to mój problem","solvedMyProblem","thumb-up"],["Inne","otherUp","thumb-up"]],[["Brak potrzebnych mi informacji","missingTheInformationINeed","thumb-down"],["Zbyt skomplikowane / zbyt wiele czynności do wykonania","tooComplicatedTooManySteps","thumb-down"],["Nieaktualne treści","outOfDate","thumb-down"],["Problem z tłumaczeniem","translationIssue","thumb-down"],["Problem z przykładami/kodem","samplesCodeIssue","thumb-down"],["Inne","otherDown","thumb-down"]],["Ostatnia aktualizacja: 2024-09-20 UTC."],[],[]]