मेन्यू संसाधन

मेन्यू संसाधन किसी ऐप्लिकेशन मेन्यू के बारे में बताता है. जैसे- विकल्प मेन्यू, संदर्भ मेन्यू या सबमेन्यू. को MenuInflater से बढ़ाया जा सकता है.

मेन्यू इस्तेमाल करने के बारे में जानकारी पाने के लिए, मेन्यू जोड़ें देखें.

फ़ाइल की जगह:
res/menu/filename.xml
फ़ाइल नाम का इस्तेमाल, रिसॉर्स आईडी के तौर पर किया जाता है
कंपाइल किए गए संसाधन डेटा टाइप:
Menu (या सब-क्लास) संसाधन के लिए रिसॉर्स पॉइंटर
संसाधन का रेफ़रंस:
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है Java में: 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
एक्सएमएल नेमस्पेस. ज़रूरी है. एक्सएमएल नेमस्पेस के बारे में बताता है, जो "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 में पेश किया गया.

android:showAsAction
कीवर्ड. ऐप्लिकेशन में यह आइटम, ऐक्शन आइटम के तौर पर कब और कैसे दिखता है बार. कोई मेन्यू आइटम, ऐक्शन आइटम के तौर पर सिर्फ़ तब दिख सकता है, जब गतिविधि में ऐप बार पर क्लिक करें. मान्य मान:
वैल्यूब्यौरा
ifRoomइस आइटम को केवल इसमें रखें ऐप्लिकेशन बार पर क्लिक करें. अगर सभी लोगों के लिए जगह नहीं है "ifRoom" के तौर पर मार्क किए गए आइटम, सबसे कम संख्या वाले आइटम orderInCategory वैल्यू, कार्रवाइयों के तौर पर दिखती हैं और बाकी आइटम ओवरफ़्लो मेन्यू में दिखते हैं.
withTextशीर्षक का टेक्स्ट भी शामिल करें (तय किया गया) android:title ने). आप एक वैल्यू के साथ इस वैल्यू को भी शामिल कर सकते हैं दूसरे का झंडे के रूप में इस्तेमाल किया जाता है. इसके लिए उन्हें पाइप | से अलग किया जाता है.
neverइस आइटम को कभी भी ऐप बार में न रखें. इसके बजाय, आइटम को ऐप्लिकेशन बार के ओवरफ़्लो में शामिल करें मेन्यू.
alwaysइस आइटम को हमेशा ऐप्लिकेशन बार में रखें. इसका इस्तेमाल तब तक न करें, जब तक यह ज़रूरी न हो कि आइटम हमेशा कार्रवाई में दिखता है बार. अगर एक से ज़्यादा आइटम को हमेशा ऐक्शन आइटम के तौर पर दिखाने के लिए सेट किया जाता है, तो वे ओवरलैप हो सकते हैं के साथ-साथ अन्य यूज़र इंटरफ़ेस (यूआई) भी मिलेगा.
collapseActionViewकार्रवाई व्यू जुड़ा है इस ऐक्शन आइटम के साथ (जैसा कि android:actionLayout ने बताया है या android:actionViewClass) है छोटा किया जा सकता है.
एपीआई लेवल 14 में पेश किया गया.

ऐप्लिकेशन बार जोड़ें देखें हमारा वीडियो देखें.

एपीआई लेवल 11 में पेश किया गया.

android:actionLayout
लेआउट के बारे में जानकारी देने वाला संसाधन. ऐक्शन व्यू के तौर पर इस्तेमाल करने के लिए लेआउट.

ज़्यादा जानकारी के लिए, इस्तेमाल की कार्रवाई देखें व्यू और ऐक्शन देने वाली कंपनियां.

एपीआई लेवल 11 में पेश किया गया.

android:actionViewClass
क्लास का नाम. View के लिए पूरी तरह क्वालिफ़ाइड क्लास का नाम ऐक्शन व्यू के तौर पर इस्तेमाल करने के लिए. उदाहरण के लिए, कार्रवाई व्यू के तौर पर SearchView का इस्तेमाल करने के लिए, "android.widget.SearchView".

ज़्यादा जानकारी के लिए, इस्तेमाल की कार्रवाई देखें व्यू और ऐक्शन देने वाली कंपनियां.

चेतावनी: अगर आप ProGuard या इससे मिलते-जुलते टूल का इस्तेमाल करके, अपने कोड को उलझाने वाले हैं, तो इस एट्रिब्यूट में आपने जिस क्लास को शामिल किया है उसका नाम बदलना न भूलें. ऐसा करने से, काम करता है.

एपीआई लेवल 11 में पेश किया गया.

android:actionProviderClass
क्लास का नाम. ऐक्शन आइटम की जगह इस्तेमाल करने के लिए, ActionProvider के लिए पूरी तरह क्वालिफ़ाइड क्लास का नाम. उदाहरण के लिए, ShareActionProvider का इस्तेमाल करने के लिए "android.widget.ShareActionProvider".

ज़्यादा जानकारी के लिए, इस्तेमाल की कार्रवाई देखें व्यू और ऐक्शन देने वाली कंपनियां.

चेतावनी: अगर आप ProGuard या इससे मिलते-जुलते टूल का इस्तेमाल करके, अपने कोड को उलझाने वाले हैं, तो इस एट्रिब्यूट में आपने जिस क्लास को शामिल किया है उसका नाम बदलना न भूलें. ऐसा करने से, काम करता है.

एपीआई लेवल 14 में पेश किया गया.

android:alphabeticShortcut
चार. अक्षर के साथ वाली शॉर्टकट कुंजी के लिए एक वर्ण.
android:numericShortcut
पूरी संख्या. न्यूमेरिक शॉर्टकट बटन के लिए कोई संख्या.
android:alphabeticModifiers
कीवर्ड. मेन्यू आइटम की वर्णमाला के लिए कार्रवाई बदलने वाली कुंजी शॉर्टकट. डिफ़ॉल्ट वैल्यू, Control से जुड़ी होती है बटन दबाएं. मान्य मान:
वैल्यूब्यौरा
META Meta मेटा कुंजी से मेल खाता है.
Ctrl Control मेटा कुंजी से मेल खाता है.
ALT Alt मेटा कुंजी से मेल खाता है.
शिफ़्ट Shift मेटा कुंजी से मेल खाता है.
एसवाईएम Sym मेटा कुंजी से मेल खाता है.
फ़ंक्शन Function मेटा कुंजी से मेल खाता है.

ध्यान दें: आपके पास एट्रिब्यूट की वैल्यू सबमिट करें. उदाहरण के लिए, android:alphabeticModifiers="CTRL|SHIFT" संकेत देता है जो संबंधित मेन्यू आइटम को ट्रिगर करने के लिए, उपयोगकर्ता को Control और Shift, दोनों मेटा बटन को एक साथ दबाएं का विकल्प चुनें.

setAlphabeticShortcut() तरीके का इस्तेमाल इन कामों के लिए किया जा सकता है प्रोग्राम के हिसाब से एट्रिब्यूट की वैल्यू सेट करें. Reader Revenue Manager को सेट अप करने के बारे में alphabeticModifier एट्रिब्यूट के बारे में जानकारी यहां देखें alphabeticModifiers.

android:numericModifiers
कीवर्ड. मेन्यू आइटम के नंबर वाले शॉर्टकट का मॉडिफ़ायर. डिफ़ॉल्ट वैल्यू, Control कुंजी के तौर पर सेट होती है. मान्य मान:
वैल्यूब्यौरा
META Meta मेटा कुंजी से मेल खाता है.
Ctrl Control मेटा कुंजी से मेल खाता है.
ALT Alt मेटा कुंजी से मेल खाता है.
शिफ़्ट Shift मेटा कुंजी से मेल खाता है.
एसवाईएम 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
पूरी संख्या. कैटगरी में मौजूद आइटम का डिफ़ॉल्ट क्रम.
उदाहरण:
एक्सएमएल फ़ाइल 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) कॉलबैक से मेन्यू को इनफ़्लेट करता है और ऑन-क्लिक के बारे में भी बताता है दो आइटम के लिए कॉलबैक:

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