منبع منو

یک منبع منو یک منوی برنامه را تعریف می کند - یک منوی گزینه ها، منوی زمینه، یا زیرمنو - که می تواند با MenuInflater پر شود.

برای راهنمای استفاده از منوها، به افزودن منوها مراجعه کنید.

محل فایل:
res/menu/ filename .xml
نام فایل به عنوان شناسه منبع استفاده می شود
نوع داده منبع کامپایل شده:
اشاره گر منبع به یک منبع Menu (یا زیر کلاس).
مرجع منبع:
در جاوا: R.menu. filename
در @[ package :]menu. filename
نحو:
<?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>
عناصر:
مورد نیاز. این باید گره ریشه باشد. حاوی عناصر <item> و/یا <group> است.

ویژگی ها:

xmlns:android
فضای نام XML . مورد نیاز. فضای نام XML را تعریف می کند که باید "http://schemas.android.com/apk/res/android" باشد.
<item>
یک آیتم منو ممکن است حاوی یک عنصر <menu> باشد (برای یک زیر منو). باید فرزند یک عنصر <menu> یا <group> باشد.

ویژگی ها:

android:id
شناسه منبع شناسه منبع منحصر به فرد برای ایجاد یک شناسه منبع جدید برای این مورد، از فرم "@+id/ name " استفاده کنید. علامت مثبت نشان می دهد که این به عنوان یک شناسه جدید ایجاد شده است.
android:title
منبع رشته عنوان منو به عنوان یک منبع رشته یا رشته خام.
android:titleCondensed
منبع رشته عنوان فشرده به عنوان یک منبع رشته یا یک رشته خام. این عنوان برای موقعیت‌هایی استفاده می‌شود که عنوان عادی خیلی طولانی است.
android:icon
منبع قابل ترسیم تصویری که به عنوان نماد آیتم منو استفاده می شود.
android:onClick
نام روش . روشی برای تماس با کلیک روی این آیتم منو. روش باید در فعالیت به عنوان عمومی اعلام شود. یک MenuItem به عنوان تنها پارامتر خود می پذیرد که نشان می دهد روی مورد کلیک شده است. این روش بر فراخوانی استاندارد به onOptionsItemSelected() اولویت دارد. مثال را در انتهای این صفحه ببینید.

هشدار: اگر کد خود را با استفاده از ProGuard یا ابزاری مشابه مبهم می‌کنید، مطمئن شوید که روشی را که در این ویژگی مشخص کرده‌اید از تغییر نام حذف کنید، زیرا می‌تواند عملکرد را خراب کند.

در سطح 11 API معرفی شده است.

android:showAsAction
کلمه کلیدی چه زمانی و چگونه این مورد به عنوان یک مورد عمل در نوار برنامه ظاهر می شود. یک آیتم منو فقط زمانی می تواند به عنوان یک آیتم اقدام ظاهر شود که فعالیت شامل نوار برنامه باشد. مقادیر معتبر:
ارزش توضیحات
ifRoom این مورد را فقط در صورتی در نوار برنامه قرار دهید که جایی برای آن وجود دارد. اگر فضایی برای همه موارد با علامت "ifRoom" وجود نداشته باشد، موارد با کمترین مقدار orderInCategory به عنوان کنش نمایش داده می شوند و موارد باقی مانده در منوی سرریز نمایش داده می شوند.
withText همچنین متن عنوان (تعریف شده توسط android:title ) را با آیتم اقدام اضافه کنید. می توانید این مقدار را به همراه یکی از موارد دیگر به عنوان یک مجموعه پرچم با جدا کردن آنها با یک لوله | وارد کنید .
never هرگز این مورد را در نوار برنامه قرار ندهید. در عوض، مورد را در منوی سرریز نوار برنامه فهرست کنید.
always همیشه این مورد را در نوار برنامه قرار دهید. از استفاده از آن خودداری کنید، مگر اینکه مهم باشد که آیتم همیشه در نوار اقدام ظاهر شود. تنظیم چندین مورد به‌گونه‌ای که همیشه به‌عنوان موارد اقدام ظاهر شوند، می‌تواند منجر به همپوشانی آنها با سایر رابط‌های کاربری در نوار برنامه شود.
collapseActionView نمای اقدام مرتبط با این آیتم کنشی (همانطور که توسط android:actionLayout یا android:actionViewClass اعلام شده) قابل جمع شدن است.
در سطح 14 API معرفی شده است.

برای اطلاعات بیشتر به افزودن نوار برنامه مراجعه کنید.

در سطح 11 API معرفی شده است.

android:actionLayout
منبع چیدمان یک طرح برای استفاده به عنوان نمای عمل.

برای اطلاعات بیشتر، به استفاده از نماهای اقدام و ارائه دهندگان اقدام مراجعه کنید.

در سطح 11 API معرفی شده است.

android:actionViewClass
نام کلاس . یک نام کلاس کاملاً واجد شرایط برای View برای استفاده به عنوان نمای عمل. به عنوان مثال، "android.widget.SearchView" برای استفاده از SearchView به عنوان نمای اقدام.

برای اطلاعات بیشتر، به استفاده از نماهای اقدام و ارائه دهندگان اقدام مراجعه کنید.

هشدار: اگر کد خود را با استفاده از ProGuard یا ابزاری مشابه مبهم می‌کنید، حتماً کلاسی را که در این ویژگی مشخص کرده‌اید از تغییر نام حذف کنید، زیرا می‌تواند عملکرد را خراب کند.

در سطح 11 API معرفی شده است.

android:actionProviderClass
نام کلاس . یک نام کلاس کاملاً واجد شرایط برای ActionProvider که به جای آیتم اقدام استفاده شود. به عنوان مثال، "android.widget.ShareActionProvider" برای استفاده از ShareActionProvider .

برای اطلاعات بیشتر، به استفاده از نماهای اقدام و ارائه دهندگان اقدام مراجعه کنید.

هشدار: اگر کد خود را با استفاده از ProGuard یا ابزاری مشابه مبهم می‌کنید، حتماً کلاسی را که در این ویژگی مشخص کرده‌اید از تغییر نام حذف کنید، زیرا می‌تواند عملکرد را خراب کند.

در سطح 14 API معرفی شده است.

android:alphabeticShortcut
چار . یک کاراکتر برای کلید میانبر الفبایی.
android:numericShortcut
عدد صحیح عددی برای کلید میانبر عددی.
android:alphabeticModifiers
کلمه کلیدی یک اصلاح کننده برای میانبر الفبایی آیتم های منو. مقدار پیش فرض مربوط به کلید Control است. مقادیر معتبر:
ارزش توضیحات
META مربوط به کلید متا است.
CTRL مربوط به کلید متا Control است.
ALT مربوط به کلید متا Alt است.
SHIFT مربوط به کلید متا Shift است.
SYM مربوط به کلید متا Sym است.
تابع مربوط به کلید متا Function است.

توجه : می توانید چندین کلمه کلیدی را در یک ویژگی مشخص کنید. به عنوان مثال، android:alphabeticModifiers="CTRL|SHIFT" نشان می دهد که برای فعال کردن آیتم منوی مربوطه، کاربر باید هر دو کلید متا Control و Shift را به همراه میانبر فشار دهد.

شما می توانید از متد setAlphabeticShortcut() برای تنظیم مقادیر مشخصه به صورت برنامه ای استفاده کنید. برای اطلاعات بیشتر در مورد ویژگی alphabeticModifier ، alphabeticModifiers را ببینید.

android:numericModifiers
کلمه کلیدی یک اصلاح کننده برای میانبر عددی آیتم منو. مقدار پیش فرض مربوط به کلید Control است. مقادیر معتبر:
ارزش توضیحات
متا مربوط به کلید متا است.
CTRL مربوط به کلید متا Control است.
ALT مربوط به کلید متا Alt است.
SHIFT مربوط به کلید متا Shift است.
SYM مربوط به کلید متا Sym است.
تابع مربوط به کلید متا Function است.

توجه : می توانید چندین کلمه کلیدی را در یک ویژگی مشخص کنید. به عنوان مثال، android:numericModifiers="CTRL|SHIFT" نشان می دهد که برای فعال کردن آیتم منوی مربوطه، کاربر باید هر دو کلید متا Control و Shift را به همراه میانبر فشار دهد.

شما می توانید از متد setNumericShortcut() برای تنظیم مقادیر مشخصه به صورت برنامه ای استفاده کنید. برای اطلاعات بیشتر در مورد ویژگی numericModifier ، numericModifiers را ببینید.

android:checkable
بولی . اگر مورد قابل بررسی باشد درست است.
android:checked
بولی . اگر مورد به طور پیش‌فرض علامت زده شود درست است.
android:visible
بولی . درست است اگر مورد به طور پیش فرض قابل مشاهده باشد.
android:enabled
بولی . اگر مورد به طور پیش فرض فعال باشد درست است.
android:menuCategory
کلمه کلیدی مقدار مربوط به ثابت های Menu CATEGORY_* ، که اولویت مورد را تعیین می کند. مقادیر معتبر:
ارزش توضیحات
container برای اقلامی که بخشی از یک ظرف هستند.
system برای مواردی که توسط سیستم ارائه می شود.
secondary برای مواردی که گزینه‌های ثانویه (که به ندرت استفاده می‌شوند) توسط کاربر ارائه می‌شوند.
alternative برای مواردی که اقدامات جایگزین روی داده‌هایی هستند که در حال حاضر نمایش داده می‌شوند.
android:orderInCategory
عدد صحیح ترتیب اهمیت آیتم در یک گروه.
<group>
یک گروه منو، برای ایجاد مجموعه‌ای از آیتم‌هایی که ویژگی‌های مشترک دارند، مانند قابل مشاهده بودن، فعال بودن یا انتخاب شدنی بودن. حاوی یک یا چند عنصر <item> است. باید فرزند یک عنصر <menu> باشد.

ویژگی ها:

android:id
شناسه منبع شناسه منبع منحصر به فرد برای ایجاد یک شناسه منبع جدید برای این مورد، از فرم "@+id/ name " استفاده کنید. علامت مثبت نشان می دهد که این به عنوان یک شناسه جدید ایجاد شده است.
android:checkableBehavior
کلمه کلیدی نوع رفتار قابل انتخاب برای گروه. مقادیر معتبر:
ارزش توضیحات
none قابل انتخاب نیست
all همه موارد را می توان انتخاب کرد (از چک باکس ها استفاده کنید).
single فقط یک مورد را می توان انتخاب کرد (از دکمه های رادیویی استفاده کنید).
android:visible
بولی . اگر گروه قابل مشاهده باشد درست است.
android:enabled
بولی . اگر گروه فعال باشد درست است.
android:menuCategory
کلمه کلیدی مقدار مربوط به ثابت های Menu CATEGORY_* که اولویت گروه را مشخص می کند. مقادیر معتبر:
ارزش توضیحات
container برای گروه هایی که بخشی از یک ظرف هستند.
system برای گروه هایی که توسط سیستم ارائه می شود.
secondary برای گروه هایی که گزینه های ثانویه (که به ندرت استفاده می شوند) توسط کاربر ارائه می شوند.
alternative برای گروه هایی که اقدامات جایگزین روی داده هایی هستند که در حال حاضر نمایش داده می شوند.
android:orderInCategory
عدد صحیح ترتیب پیش‌فرض اقلام در دسته.
مثال:
فایل XML ذخیره شده در 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>

کد برنامه زیر منو را از پاسخ به تماس onCreateOptionsMenu(Menu) پر می کند و همچنین پاسخ تماس با کلیک را برای دو مورد از موارد اعلام می کند:

کاتلین

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.
}

جاوا

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.
}