Bir menü kaynağı, kullanıcının ürünle etkileşime girmesini sağlamak için
MenuInflater
ile şişirilebilir.
Menüleri kullanma hakkında bir rehber için Menü ekleme başlıklı makaleyi inceleyin.
- dosya konumu:
res/menu/filename.xml
Dosya adı, kaynak kimliği olarak kullanılıyor
- derlenen kaynak veri türü:
- Kaynak işaretçisini bir
Menu
(veya alt sınıf) kaynağına yönlendirin
- kaynak referansı:
- .
Java'da:
R.menu.filename
XML'de: @[package:]menu.filename
- söz dizimi:
-
<?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>
- öğeler:
-
- Zorunlu. Bu, kök düğüm olmalıdır.
<item>
ve/veya içerir
<group>
öğeleri.
Özellikler:
xmlns:android
- XML ad alanı. Zorunludur. Aşağıdaki gibi XML ad alanını tanımlar:
"http://schemas.android.com/apk/res/android"
olmalıdır.
<item>
- Menü seçeneği.
<menu>
öğesi içerebilir (alt menü için).
Bir <menu>
veya <group>
öğesinin alt öğesi olmalıdır.
Özellikler:
android:id
- Kaynak Kimliği. Benzersiz bir kaynak kimliği. Bu öğe için yeni bir kaynak kimliği oluşturmak için şu formu kullanın:
"@+id/name"
Artı simgesi, bunun yeni bir
Kimlik.
android:title
- Dize kaynağı. Dize kaynağı veya ham dize olarak menü başlığı.
android:titleCondensed
- Dize kaynağı. Dize kaynağı veya işlenmemiş dize olarak, sıkıştırılmış başlık. Bu
başlık, normal başlığın çok uzun olduğu durumlarda kullanılır.
android:icon
- Çekilebilir kaynak. Menü öğesi simgesi olarak kullanılacak resim.
android:onClick
- Yöntem adı. Bu menü öğesi tıklandığında çağrılacak yöntem. İlgili içeriği oluşturmak için kullanılan
yöntemi, etkinlikte herkese açık olarak belirtilmelidir. Şu şekilde bir
MenuItem
kabul ediyor:
Tıklandığında öğeyi belirten tek bir parametredir. Bu yöntem, standart
onOptionsItemSelected()
numaralı telefona geri arama. Bkz.
örneğini burada bulabilirsiniz.
Uyarı: ProGuard veya benzer bir araç kullanarak kodunuzu karartırsanız,
bu özellikte belirttiğiniz yöntemi yeniden adlandırma işleminden hariç tuttuğunuzdan emin olun. Aksi takdirde bu yöntem,
işlevi görür.
API düzeyi 11'de kullanıma sunuldu.
android:showAsAction
- Anahtar kelime. Bu öğe uygulamada ne zaman ve nasıl işlem öğesi olarak görünür?
çubuk. Bir menü öğesi yalnızca etkinlikte bir
uygulama çubuğu. Geçerli değerler:
Değer | Açıklama |
ifRoom | Bu öğeyi yalnızca
uygulama çubuğunu kullanın. Herkes için yer yoksa
"ifRoom" olarak işaretlenen öğeler, en düşük
orderInCategory değerleri işlem olarak görüntülenir ve
kalan öğeler taşma menüsünde görüntülenir. |
withText | Ayrıca başlık metnini (tanımlanmış
(android:title tarafından) işlem öğesiyle. Bir değerle birlikte bu değeri de ekleyebilirsiniz
(diğerlerini, dikey çizgi | ile ayırarak) bayrak olarak ayarlar. |
never | Bu öğeyi hiçbir zaman uygulama çubuğuna yerleştirme. Bunun yerine, öğeyi uygulama çubuğunun taşması sırasında listeleyin
tıklayın. |
always | Bu öğeyi her zaman uygulama çubuğuna yerleştir.
Öğenin işlemde her zaman görünmesi çok önemli değilse bunu kullanmaktan kaçının
çubuk. Birden fazla öğenin her zaman işlem öğeleri olarak görünmesi, öğelerin çakışmasına neden olabilir
diğer kullanıcı arayüzüyle. |
collapseActionView | İlişkilendirilen işlem görünümü
(android:actionLayout veya
android:actionViewClass ),
daraltılabilir. API düzeyi 14'te kullanıma sunulmuştur. |
Uygulama çubuğunu ekleme başlıklı makaleyi inceleyin
konulu videomuzu izleyin.
API düzeyi 11'de kullanıma sunuldu.
android:actionLayout
- Düzen kaynağı. İşlem görünümü olarak kullanılacak bir düzen.
Daha fazla bilgi için İşlemi kullanma
görüntülemeler ve işlem sağlayıcıları.
API düzeyi 11'de kullanıma sunuldu.
android:actionViewClass
- Sınıf adı.
View
için tam nitelikli sınıf adı
işlem görünümü olarak kullanmak üzere. Örneğin,
SearchView
öğesini işlem görünümü olarak kullanmak için "android.widget.SearchView"
.
Daha fazla bilgi için İşlemi kullanma
görüntülemeler ve işlem sağlayıcıları.
Uyarı: ProGuard veya benzer bir araç kullanarak kodunuzu karartırsanız,
bu özellikte belirttiğiniz sınıfı yeniden adlandırma işleminden hariç tuttuğunuzdan emin olun. Çünkü bu özellik,
işlevi görür.
API düzeyi 11'de kullanıma sunuldu.
android:actionProviderClass
- Sınıf adı. İşlem öğesinin yerine kullanılacak
ActionProvider
için tam nitelikli sınıf adı. Örneğin,
ShareActionProvider
özelliğini kullanmak için "android.widget.ShareActionProvider"
.
Daha fazla bilgi için İşlemi kullanma
görüntülemeler ve işlem sağlayıcıları.
Uyarı: ProGuard veya benzer bir araç kullanarak kodunuzu karartırsanız,
bu özellikte belirttiğiniz sınıfı yeniden adlandırma işleminden hariç tuttuğunuzdan emin olun. Çünkü bu özellik,
işlevi görür.
API düzeyi 14'te kullanıma sunuldu.
android:alphabeticShortcut
- Şarj. Alfabetik kısayol tuşu için bir karakter.
android:numericShortcut
- Tamsayı. Sayısal kısayol tuşu için bir sayı.
android:alphabeticModifiers
- Anahtar kelime. Menü öğesinin alfabetik tuşu için bir değiştirici
kısayolunu görürsünüz. Varsayılan değer, Control
tuşuna basın. Geçerli değerler:
Değer | Açıklama |
META |
Meta meta anahtarına karşılık gelir. |
CTRL |
Control meta anahtarına karşılık gelir. |
ALT |
Alt meta tuşuna karşılık gelir. |
ÜST KARAKTER |
Üst Karakter meta tuşuna karşılık gelir. |
SEM |
Sym meta anahtarına karşılık gelir. |
İŞLEV |
İşlev meta anahtarına karşılık gelir. |
Not: Bir reklam grubunda birden çok anahtar kelime belirtebilirsiniz.
özelliğini gönderin. Örneğin,
android:alphabeticModifiers="CTRL|SHIFT"
şunu belirtir:
ilgili menü öğesini tetiklemesi için kullanıcının
Ctrl ve ÜstKrktr meta tuşlarına birlikte basın
.
setAlphabeticShortcut()
yöntemini kullanarak
özellik değerlerini programatik olarak ayarlayın. Okuyucu Gelirleri Yöneticisi'ni
alphabeticModifier
özelliği hakkında bilgi için bkz.
alphabeticModifiers
.
android:numericModifiers
- Anahtar kelime. Menü öğesinin sayısal kısayolu için bir değiştirici.
Varsayılan değer Control tuşuna karşılık gelir. Geçerli
değerleri:
Değer | Açıklama |
META |
Meta meta anahtarına karşılık gelir. |
CTRL |
Control meta anahtarına karşılık gelir. |
ALT |
Alt meta tuşuna karşılık gelir. |
ÜST KARAKTER |
Üst Karakter meta tuşuna karşılık gelir. |
SEM |
Sym meta anahtarına karşılık gelir. |
İŞLEV |
İşlev meta anahtarına karşılık gelir. |
Not: Bir reklam grubunda birden çok anahtar kelime belirtebilirsiniz.
özelliğini gönderin. Örneğin,
android:numericModifiers="CTRL|SHIFT"
şunu belirtir:
ilgili menü öğesini tetiklemesi için kullanıcının
Ctrl ve ÜstKrktr meta tuşlarına birlikte basın
.
Şu bilgileri ayarlamak için setNumericShortcut()
yöntemini kullanabilirsiniz:
özellik değerlerini programatik olarak ekleyin. Daha fazla bilgi için
numericModifier
özelliği için bkz.
numericModifiers
.
android:checkable
- Boole. Öğe kontrol edilebiliyorsa doğru değerini döndürür.
android:checked
- Boole. Öğe varsayılan olarak işaretlenmişse doğru değerini alır.
android:visible
- Boole. Öğe varsayılan olarak görünürse doğru değerini alır.
android:enabled
- Boole. Öğe varsayılan olarak etkinse doğru değerini alır.
android:menuCategory
- Anahtar kelime.
Menu
CATEGORY_*
öğesine karşılık gelen değer
sabit değerleri kullanabilirsiniz. Geçerli değerler:
Değer | Açıklama |
container | Şu öğe için:
emin olun. |
system | tarafından sağlanan öğeler için
bahsedeceğim. |
secondary | Kullanıcı tarafından sağlanan ikincil öğeler için
(nadiren kullanılmayan) seçenekleri. |
alternative | Alternatif işlem olan öğeler için
o anda görüntülenen verilerdir. |
android:orderInCategory
- Tamsayı. Öğenin bir gruptaki önem sırası.
<group>
- Belirli özellikleri paylaşan öğelerden oluşan bir koleksiyon oluşturmak için menü grubu
görünür, etkin veya seçilebilir. Bir veya daha fazla
<item>
öğesi içerir. Bir
<menu>
öğesinin alt öğesidir.
Özellikler:
android:id
- Kaynak Kimliği. Benzersiz bir kaynak kimliği. Bu öğe için yeni bir kaynak kimliği oluşturmak üzere
şu formu kullanın:
"@+id/name"
Artı simgesi, bunun yeni bir
Kimlik.
android:checkableBehavior
- Anahtar kelime. Grup için seçilebilir davranışın türü. Geçerli değerler:
Değer | Açıklama |
none | Seçilemez. |
all | Tüm öğeler seçilebilir (onay kutularını kullanın). |
single | Yalnızca bir öğe seçilebilir (radyoyu kullanın
düğmelerinde) yer alır. |
android:visible
- Boole. Grup görünür durumdaysa doğru değerini alır.
android:enabled
- Boole. Grup etkinse doğru değerini alır.
android:menuCategory
- Anahtar kelime.
Menu
CATEGORY_*
öğesine karşılık gelen değer
sabit değerleridir. Geçerli değerler:
Değer | Açıklama |
container | Şu grubun parçası olan gruplar için:
emin olun. |
system | tarafından sağlanan gruplar için
bahsedeceğim. |
secondary | Kullanıcı tarafından sağlanan ikincil gruplar için
(nadiren kullanılmayan) seçenekleri. |
alternative | Alternatif işlemler olan gruplar için
o anda görüntülenen verilerdir. |
android:orderInCategory
- Tamsayı. Kategori içindeki öğelerin varsayılan sırası.
- örnek:
- XML dosyası
res/menu/example_menu.xml
itibarıyla kaydedildi:
<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>
Aşağıdaki uygulama kodu, onCreateOptionsMenu(Menu)
geri çağırma işlevinin menüsünü şişirir ve ayrıca tıklama olduğunu bildirir
iki öğe için geri çağırma yapılır:
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.
}