Menü kaynağı

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ğerAçıklama
ifRoomBu öğ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.
withTextAyrı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.
neverBu öğeyi hiçbir zaman uygulama çubuğuna yerleştirme. Bunun yerine, öğeyi uygulama çubuğunun taşması sırasında listeleyin tıklayın.
alwaysBu öğ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ğerAçı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ğerAçı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ğerAçıklama
containerŞu öğe için: emin olun.
systemtarafından sağlanan öğeler için bahsedeceğim.
secondaryKullanıcı tarafından sağlanan ikincil öğeler için (nadiren kullanılmayan) seçenekleri.
alternativeAlternatif 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ğerAçıklama
noneSeçilemez.
allTüm öğeler seçilebilir (onay kutularını kullanın).
singleYalnı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ğerAçıklama
containerŞu grubun parçası olan gruplar için: emin olun.
systemtarafından sağlanan gruplar için bahsedeceğim.
secondaryKullanıcı tarafından sağlanan ikincil gruplar için (nadiren kullanılmayan) seçenekleri.
alternativeAlternatif 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.
}