إضافة الإجراءات ومعالجتها

يتيح لك شريط التطبيقات إضافة أزرار لإجراءات المستخدم. تتيح لك هذه الميزة وضع أهم الإجراءات للسياق الحالي في أعلى التطبيق. على سبيل المثال، قد يعرض تطبيق لتصفُّح الصور طريقة مشاركة وإنشاء الألبوم في الجزء العلوي عندما ينظر المستخدم إلى ألبوم الصور الخاص به. فعندما عندما ينظر المستخدم إلى صورة فردية، قد يعرض التطبيق اقتصاصًا أزرار الفلترة:

المساحة في شريط التطبيق محدودة. إذا أعلن أحد التطبيقات عن إجراءات أكثر مما يناسب في شريط التطبيقات، يرسل شريط التطبيق الإجراءات الزائدة إلى قائمة كاملة. يمكن للتطبيق أيضًا تحديد عرض الإجراء دائمًا في القائمة الكاملة، بدلاً من عرضها على شريط التطبيق.

صورة تعرض الآن في تطبيق Android مع رمز شريط الإجراءات
الشكل 1. رمز إجراء في قسم "الآن في Android" التطبيق.

إضافة أزرار الإجراءات

تكون جميع أزرار الإجراءات والعناصر الأخرى المتوفرة في القائمة الكاملة للإجراءات محدّد في ملف XML مورد القائمة. للإضافة شريط الإجراءات، يمكنك إنشاء ملف XML جديد في ملف دليل res/menu/.

إضافة <item> لكل عنصر تريد تضمينه في شريط الإجراءات، كما هو موضح في نموذج ملف XML للقائمة التالي:

<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 ما إذا كان الإجراء يظهر كزر في شريط التطبيق. في حال ضبط app:showAsAction="ifRoom" - كما في مثال الرمز وضع في المفضلة: يتم عرض الإجراء كزر إذا كان هناك مساحة شريط التطبيق لذلك. إذا لم تكن هناك مساحة كافية، يتم إرسال الإجراءات الزائدة إلى القائمة الكاملة. في حال ضبط app:showAsAction="never"—كما في مثال على إجراء الإعدادات، يكون الإجراء مدرجًا دائمًا في القائمة الكاملة ولا يتم عرضه في شريط التطبيق.

يستخدم النظام رمز الإجراء كزر الإجراء في حال عرض الإجراء. في شريط التطبيقات. يمكنك العثور على العديد من الأيقونات المفيدة في رموز المواد:

الاستجابة للإجراءات

عندما يختار المستخدم أحد عناصر شريط التطبيقات، يستدعي النظام النَّشَاطْ onOptionsItemSelected() طريقة معاودة الاتصال وتمرير عنصر واحد (MenuItem) للإشارة إلى العنصر الذي تم النقر عليه. في ما يتعلق بتنفيذ onOptionsItemSelected()، يمكنك الاتصال MenuItem.getItemId() لتحديد العنصر الذي تم النقر عليه. يتطابق رقم التعريف المعروض مع القيمة التي التعريف في عنصر <item> المقابل السمة android:id.

على سبيل المثال، يتحقق مقتطف الرمز التالي من الإجراء الذي يختاره المستخدم. إذا لم تتعرف الطريقة على إجراء المستخدم، فإنها تستدعي الفئة الفائقة :

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);

    }
}