মেনু রিসোর্স

একটি মেনু রিসোর্স একটি অ্যাপ্লিকেশন মেনু সংজ্ঞায়িত করে—একটি বিকল্প মেনু, প্রসঙ্গ মেনু, বা সাবমেনু—যা MenuInflater দিয়ে স্ফীত করা যেতে পারে।

মেনু ব্যবহার করার নির্দেশিকা পেতে, মেনু যোগ করুন দেখুন।

ফাইলের লোকেশন:
res/menu/filename.xml
ফাইলের নাম রিসোর্স আইডি হিসেবে ব্যবহার করা হয়
কম্পাইল করা রিসোর্স ডেটাটাইপ:
রিসোর্স পয়েন্টার থেকে Menu (বা সাবক্লাস) রিসোর্স
রিসোর্স রেফারেন্স:
Java-তে: R.menu.filename
XML-এ: @[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 বা একই ধরনের টুল ব্যবহার করে আপনার কোড অস্পষ্ট করেন, তাহলে এই অ্যাট্রিবিউটে আপনার উল্লেখ করা পদ্ধতিটি নাম পরিবর্তন করা থেকে বাদ দিতে ভুলবেন না, কারণ এটি কার্যকারিতা নষ্ট করতে পারে।

API লেভেল ১১-এ চালু করা হয়েছে।

android:showAsAction
কীওয়ার্ড। অ্যাপ বারে এই আইটেমটি কখন এবং কীভাবে অ্যাকশন আইটেম হিসেবে দেখা যায়। অ্যাক্টিভিটিতে অ্যাপ বার অন্তর্ভুক্ত থাকলে তবেই মেনু আইটেম অ্যাকশন আইটেম হিসেবে দেখানো যেতে পারে। বৈধ মানসমূহ:
মানবর্ণনা
ifRoomঅ্যাপ বারে জায়গা থাকলে তবেই এই আইটেমটি সেখানে রাখুন। "ifRoom" হিসেবে চিহ্নিত সব আইটেমের জন্য জায়গা না থাকলে, সবচেয়ে কম orderInCategory ভ্যালু থাকা আইটেমগুলি অ্যাকশন হিসেবে দেখানো হয় এবং বাকি আইটেমগুলি ওভারফ্লো মেনুতে দেখানো হয়।
withTextএছাড়াও, কাজের আইটেমের সাথে টাইটেল টেক্সট (android:title দ্বারা নির্ধারিত) অন্তর্ভুক্ত করুন। আপনি এই মানটি অন্য একটির সাথে অন্তর্ভুক্ত করতে পারেন পাইপ | দিয়ে আলাদা করে ফ্ল্যাগ সেট হিসাবে।
neverএই আইটেমটি অ্যাপ বারে কখনও রাখবেন না। পরিবর্তে, অ্যাপ বারের ওভারফ্লো মেনুতে আইটেমটি তালিকাভুক্ত করুন।
alwaysএই আইটেমটি সবসময় অ্যাপ বারে রাখুন। আইটেমটি অ্যাকশন বারে সবসময় দেখানো অত্যন্ত গুরুত্বপূর্ণ না হলে, এটি ব্যবহার করা এড়িয়ে চলুন। একাধিক আইটেমকে সবসময় অ্যাকশন আইটেম হিসেবে দেখানোর জন্য সেট করলে, সেগুলি অ্যাপ বারে অন্যান্য UI-এর সাথে ওভারল্যাপ করতে পারে।
collapseActionViewএই অ্যাকশন আইটেমের সাথে যুক্ত অ্যাকশন ভিউ (android:actionLayout বা android:actionViewClass দ্বারা ঘোষিত) আড়াল করা যায়।
API লেভেল ১৪-এ চালু করা হয়েছে।

আরও তথ্যের জন্য অ্যাপ বার যোগ করুন দেখুন।

API লেভেল ১১-এ চালু করা হয়েছে।

android:actionLayout
লেআউট রিসোর্স। অ্যাকশন ভিউ হিসেবে ব্যবহার করার জন্য লেআউট।

আরও তথ্যের জন্য, অ্যাকশন ভিউ ও অ্যাকশন প্রদানকারী ব্যবহার করা দেখুন।

API লেভেল ১১-এ চালু করা হয়েছে।

android:actionViewClass
ক্লাসের নাম। অ্যাকশন ভিউ হিসেবে ব্যবহার করার জন্য View-এর সম্পূর্ণভাবে উপযুক্ত ক্লাস নেম। যেমন, "android.widget.SearchView"-কে SearchView-এর অ্যাকশন ভিউ হিসেবে ব্যবহার করতে।

আরও তথ্যের জন্য, অ্যাকশন ভিউ ও অ্যাকশন প্রদানকারী ব্যবহার করা দেখুন।

সতর্কতা: আপনি যদি ProGuard বা একই ধরনের টুল ব্যবহার করে আপনার কোড অস্পষ্ট করেন, তাহলে এই অ্যাট্রিবিউটে আপনার উল্লেখ করা ক্লাসটি নাম পরিবর্তন করা থেকে বাদ দিতে ভুলবেন না, কারণ এটি কার্যকারিতা নষ্ট করতে পারে।

API লেভেল ১১-এ চালু করা হয়েছে।

android:actionProviderClass
ক্লাসের নাম। অ্যাকশন আইটেমের পরিবর্তে ব্যবহার করার জন্য ActionProvider-এর সম্পূর্ণ উপযুক্ত ক্লাসের নাম। যেমন, ShareActionProvider ব্যবহার করতে "android.widget.ShareActionProvider"।

আরও তথ্যের জন্য, অ্যাকশন ভিউ ও অ্যাকশন প্রোভাইডার ব্যবহার করা দেখুন।

সতর্কতা: আপনি যদি ProGuard বা একই ধরনের টুল ব্যবহার করে আপনার কোড অস্পষ্ট করেন, তাহলে এই অ্যাট্রিবিউটে আপনার উল্লেখ করা ক্লাসটি নাম পরিবর্তন করা থেকে বাদ দিতে ভুলবেন না, কারণ এটি কার্যকারিতা নষ্ট করতে পারে।

API লেভেল ১৪-এ চালু করা হয়েছে।

android:alphabeticShortcut
Char. বর্ণানুক্রমিক শর্টকাট কী-এর জন্য একটি অক্ষর।
android:numericShortcut
পূর্ণসংখ্যা। নিউমেরিক শর্টকাট কী-এর জন্য একটি নম্বর।
android:alphabeticModifiers
কীওয়ার্ড। মেনু আইটেমের বর্ণানুক্রমিক শর্টকাটের জন্য একটি মডিফায়ার। ডিফল্ট ভ্যালু Control কী-এর সাথে সম্পর্কিত। বৈধ মানসমূহ:
মানবর্ণনা
META Meta মেটা কী-এর সাথে সম্পর্কিত।
CTRL Control মেটা কী-এর সাথে সম্পর্কিত।
ALT Alt মেটা কী-এর সাথে সম্পর্কিত।
SHIFT Shift মেটা কী-এর সাথে সম্পর্কিত।
SYM Sym মেটা কী-এর সাথে সম্পর্কিত।
ফাংশন ফাংশন মেটা কী-এর সাথে সম্পর্কিত।

মনে রাখবেন: আপনি একটি অ্যাট্রিবিউটে একাধিক কীওয়ার্ড উল্লেখ করতে পারেন। যেমন, android:alphabeticModifiers="CTRL|SHIFT" থেকে বোঝা যায় যে সংশ্লিষ্ট মেনু আইটেম ট্রিগার করতে, ব্যবহারকারীকে শর্টকাটের সাথে Control ও Shift মেটা কী প্রেস করতে হবে।

আপনি setAlphabeticShortcut() পদ্ধতি ব্যবহার করে প্রোগ্রাম্যাটিক্যালি অ্যাট্রিবিউট ভ্যালু সেট করতে পারবেন। alphabeticModifier অ্যাট্রিবিউট সম্পর্কে আরও জানতে, alphabeticModifiers দেখুন।

android:numericModifiers
কীওয়ার্ড। মেনু আইটেমের সংখ্যাসূচক শর্টকাটের জন্য একটি মডিফায়ার। ডিফল্ট ভ্যালু Control কী-এর সাথে সম্পর্কিত। সঠিক মান:
মানবর্ণনা
META Meta মেটা কী-এর সাথে সম্পর্কিত।
CTRL Control মেটা কী-এর সাথে সম্পর্কিত।
ALT Alt মেটা কী-এর সাথে সম্পর্কিত।
SHIFT Shift মেটা কী-এর সাথে সম্পর্কিত।
SYM Sym মেটা কী-এর সাথে সম্পর্কিত।
ফাংশন ফাংশন মেটা কী-এর সাথে সম্পর্কিত।

মনে রাখবেন: আপনি একটি অ্যাট্রিবিউটে একাধিক কীওয়ার্ড উল্লেখ করতে পারেন। যেমন, android:numericModifiers="CTRL|SHIFT" থেকে বোঝা যায় যে সংশ্লিষ্ট মেনু আইটেম ট্রিগার করতে, ব্যবহারকারীকে শর্টকাটের সাথে Control ও Shift মেটা কী প্রেস করতে হবে।

আপনি setNumericShortcut() পদ্ধতি ব্যবহার করে প্রোগ্রাম্যাটিক্যালি অ্যাট্রিবিউটের ভ্যালু সেট করতে পারবেন। numericModifier অ্যাট্রিবিউট সম্পর্কে আরও জানতে, numericModifiers দেখুন।

android:checkable
বুলিয়ান। আইটেমটি চেক করা গেলে True।
android:checked
বুলিয়ান। আইটেমটি ডিফল্ট হিসেবে চেক করা থাকলে True।
android:visible
বুলিয়ান। ডিফল্ট হিসেবে আইটেমটি দেখা গেলে True।
android:enabled
বুলিয়ান। আইটেমটি ডিফল্ট হিসেবে চালু থাকলে ফলাফল True হবে।
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) কলব্যাক থেকে মেনু ইনফ্লেট করে এবং দুটি আইটেমের জন্য অন-ক্লিক কলব্যাকও ঘোষণা করে:

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

জাভা

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