İşlem ekleme ve işleme

Oluşturma yöntemini deneyin
Android için önerilen kullanıcı arayüzü araç seti Jetpack Compose'dur. Oluşturma'da nasıl bileşen ekleyeceğinizi öğrenin.

Uygulama çubuğu, kullanıcı işlemleri için düğmeler eklemenize olanak tanır. Bu özellik, mevcut bağlam için en önemli işlemleri uygulamanın en üstüne yerleştirmenize olanak tanır. Örneğin, bir fotoğraf tarama uygulamasında kullanıcı fotoğraf rulosuna bakarken en üstte paylaş ve albüm oluştur düğmeleri gösterilebilir. Kullanıcı tek bir fotoğrafa baktığında uygulamada kırpma ve filtre düğmeleri gösterilebilir.

Uygulama çubuğundaki alan sınırlıdır. Bir uygulama, uygulama çubuğuna sığabilecekten daha fazla işlem bildirirse uygulama çubuğu fazla işlemleri bir taşma menüsüne gönderir. Uygulama, bir işlemin uygulama çubuğunda gösterilmek yerine her zaman taşma menüsünde gösterileceğini de belirtebilir.

Android'de kullanıma sunuldu uygulamasını işlem çubuğu simgesiyle gösteren resim
Şekil 1. "Android'de yeni" uygulamasındaki işlem simgesi.

İşlem düğmeleri ekleme

İşlem taşma menüsündeki tüm işlem düğmeleri ve diğer öğeler bir XML menü kaynağında tanımlanır. İşlem çubuğuna işlem eklemek için projenizin res/menu/ dizininde yeni bir XML dosyası oluşturun.

Aşağıdaki örnek menü XML dosyasında gösterildiği gibi, işlem çubuğuna dahil etmek istediğiniz her öğe için bir <item> öğesi ekleyin:

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto">

    <!-- "Mark Favorite", must appear as action button if possible. -->
    <item
        android:id="@+id/action_favorite"
        android:icon="@drawable/ic_favorite_black_48dp"
        android:title="@string/action_favorite"
        app:showAsAction="ifRoom"/>

    <!-- Settings, must always be in the overflow. -->
    <item android:id="@+id/action_settings"
          android:title="@string/action_settings"
          app:showAsAction="never"/>

</menu>

app:showAsAction özelliği, işlemin uygulama çubuğunda düğme olarak gösterilip gösterilmeyeceğini belirtir. Örnek koddaki favori işleminde olduğu gibi app:showAsAction="ifRoom" ayarını yaparsanız uygulama çubuğunda yer varsa işlem düğme olarak gösterilir. Yeterli alan yoksa fazla işlemler taşma menüsüne gönderilir. Örnek koddaki ayarlar işleminde olduğu gibi app:showAsAction="never" değerini ayarlarsanız işlem her zaman taşma menüsünde listelenir ve uygulama çubuğunda gösterilmez.

İşlem uygulama çubuğunda gösteriliyorsa sistem, işlem düğmesi olarak işlemin simgesini kullanır. Material Icons'da birçok faydalı simge bulabilirsiniz.

İşlemlere yanıt verme

Kullanıcı uygulama çubuğu öğelerinden birini seçtiğinde sistem, etkinliğinizin onOptionsItemSelected() geri çağırma yöntemini çağırır ve hangi öğeye dokunulduğunu belirtmek için bir MenuItem nesnesi iletir. onOptionsItemSelected() uygulamanızda, hangi öğeye dokunulduğunu belirlemek için MenuItem.getItemId() yöntemini çağırın. Döndürülen kimlik, ilgili <item> öğesinin android:id özelliğinde belirttiğiniz değerle eşleşir.

Örneğin, aşağıdaki kod snippet'inde kullanıcının hangi işlemi seçtiği kontrol edilir. Yöntem, kullanıcının işlemini tanımıyorsa üst sınıf yöntemini çağırır:

Kotlin

override fun onOptionsItemSelected(item: MenuItem) = when (item.itemId) {
    R.id.action_settings -> {
        // User chooses the "Settings" item. Show the app settings UI.
        true
    }

    R.id.action_favorite -> {
        // User chooses the "Favorite" action. Mark the current item as a
        // favorite.
        true
    }

    else -> {
        // The user's action isn't recognized.
        // Invoke the superclass to handle it.
        super.onOptionsItemSelected(item)
    }
}

Java

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case R.id.action_settings:
            // User chooses the "Settings" item. Show the app settings UI.
            return true;

        case R.id.action_favorite:
            // User chooses the "Favorite" action. Mark the current item as a
            // favorite.
            return true;

        default:
            // The user's action isn't recognized.
            // Invoke the superclass to handle it.
            return super.onOptionsItemSelected(item);

    }
}