একটি মেনু সংস্থান একটি অ্যাপ্লিকেশন মেনুকে সংজ্ঞায়িত করে—একটি বিকল্প মেনু, প্রসঙ্গ মেনু, বা সাবমেনু—যা MenuInflater
দিয়ে স্ফীত করা যেতে পারে।
মেনু ব্যবহার করার গাইডের জন্য, মেনু যোগ করুন দেখুন।
- ফাইল অবস্থান:
-
res/menu/ filename .xml
ফাইলের নাম রিসোর্স আইডি হিসাবে ব্যবহৃত হয় - সংকলিত সম্পদ ডেটা টাইপ:
- একটি
Menu
(বা সাবক্লাস) সম্পদে রিসোর্স পয়েন্টার - সম্পদ রেফারেন্স:
- জাভাতে:
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 স্তর 11-এ প্রবর্তিত হয়েছে।
-
android:showAsAction
- কীওয়ার্ড । কখন এবং কিভাবে এই আইটেমটি অ্যাপ বারে একটি অ্যাকশন আইটেম হিসাবে প্রদর্শিত হবে৷ একটি মেনু আইটেম একটি অ্যাকশন আইটেম হিসাবে উপস্থিত হতে পারে যখন কার্যকলাপে একটি অ্যাপ বার অন্তর্ভুক্ত থাকে৷ বৈধ মান:
মান | বর্ণনা |
---|
ifRoom | অ্যাপ বারে এই আইটেমটি রাখুন যদি এটির জন্য জায়গা থাকে। যদি "ifRoom" চিহ্নিত করা সমস্ত আইটেমগুলির জন্য জায়গা না থাকে, তাহলে সর্বনিম্ন orderInCategory মান সহ আইটেমগুলি ক্রিয়া হিসাবে প্রদর্শিত হবে এবং অবশিষ্ট আইটেমগুলি ওভারফ্লো মেনুতে প্রদর্শিত হবে৷ |
withText | অ্যাকশন আইটেমের সাথে শিরোনাম পাঠ্য ( android:title দ্বারা সংজ্ঞায়িত) অন্তর্ভুক্ত করুন। আপনি এই মানটিকে একটি পাইপ দিয়ে আলাদা করে পতাকা সেট হিসাবে অন্যদের একটির সাথে অন্তর্ভুক্ত করতে পারেন | . |
never | এই আইটেমটি কখনই অ্যাপ বারে রাখবেন না। পরিবর্তে, অ্যাপ বারের ওভারফ্লো মেনুতে আইটেমটি তালিকাভুক্ত করুন। |
always | এই আইটেমটিকে সর্বদা অ্যাপ বারে রাখুন। আইটেমটি সর্বদা অ্যাকশন বারে উপস্থিত হওয়া গুরুত্বপূর্ণ না হলে এটি ব্যবহার করা এড়িয়ে চলুন। একাধিক আইটেমকে সর্বদা অ্যাকশন আইটেম হিসাবে প্রদর্শিত হওয়ার জন্য সেট করার ফলে সেগুলি অ্যাপ বারে অন্যান্য UI এর সাথে ওভারল্যাপ হতে পারে। |
collapseActionView | এই অ্যাকশন আইটেমের সাথে যুক্ত অ্যাকশন ভিউ ( android:actionLayout বা android:actionViewClass দ্বারা ঘোষিত) সংকোচনযোগ্য। API স্তর 14-এ প্রবর্তন করা হয়েছে। |
আরও তথ্যের জন্য অ্যাপ বার যোগ করুন দেখুন।
API স্তর 11-এ প্রবর্তিত হয়েছে।
-
android:actionLayout
- লেআউট সম্পদ । অ্যাকশন ভিউ হিসেবে ব্যবহার করার জন্য একটি লেআউট।
আরও তথ্যের জন্য, অ্যাকশন ভিউ এবং অ্যাকশন প্রোভাইডার ব্যবহার করুন দেখুন।
API স্তর 11-এ প্রবর্তিত হয়েছে।
-
android:actionViewClass
- ক্লাসের নাম । অ্যাকশন ভিউ হিসাবে ব্যবহার করার জন্য
View
জন্য একটি সম্পূর্ণ-যোগ্য শ্রেণীর নাম। উদাহরণস্বরূপ, একটি অ্যাকশন ভিউ হিসাবে SearchView
ব্যবহার করতে "android.widget.SearchView"
। আরও তথ্যের জন্য, অ্যাকশন ভিউ এবং অ্যাকশন প্রোভাইডার ব্যবহার করুন দেখুন।
সতর্কতা: আপনি যদি ProGuard বা অনুরূপ কোনো টুল ব্যবহার করে আপনার কোডটি অস্পষ্ট করে থাকেন, তাহলে এই বৈশিষ্ট্যে আপনি যে ক্লাসটি উল্লেখ করেছেন সেটি পুনঃনামকরণ থেকে বাদ দিতে ভুলবেন না, কারণ এটি কার্যকারিতা নষ্ট করতে পারে।
API স্তর 11-এ প্রবর্তিত হয়েছে।
-
android:actionProviderClass
- ক্লাসের নাম । অ্যাকশন আইটেমের জায়গায় ব্যবহার করার জন্য
ActionProvider
এর জন্য একটি সম্পূর্ণ যোগ্য শ্রেণীর নাম। উদাহরণস্বরূপ, ShareActionProvider
ব্যবহার করতে "android.widget.ShareActionProvider"
। আরও তথ্যের জন্য, অ্যাকশন ভিউ এবং অ্যাকশন প্রোভাইডার ব্যবহার করুন দেখুন।
সতর্কতা: আপনি যদি ProGuard বা অনুরূপ কোনো টুল ব্যবহার করে আপনার কোডটি অস্পষ্ট করে থাকেন, তাহলে এই বৈশিষ্ট্যে আপনি যে ক্লাসটি উল্লেখ করেছেন সেটি পুনঃনামকরণ থেকে বাদ দিতে ভুলবেন না, কারণ এটি কার্যকারিতা নষ্ট করতে পারে।
API স্তর 14-এ প্রবর্তন করা হয়েছে।
-
android:alphabeticShortcut
- চর বর্ণানুক্রমিক শর্টকাট কী-এর জন্য একটি অক্ষর।
-
android:numericShortcut
- পূর্ণসংখ্যা । সংখ্যাসূচক শর্টকাট কী-এর জন্য একটি সংখ্যা।
-
android:alphabeticModifiers
- কীওয়ার্ড । মেনু আইটেমের বর্ণানুক্রমিক শর্টকাটের জন্য একটি সংশোধক। ডিফল্ট মান নিয়ন্ত্রণ কী এর সাথে মিলে যায়। বৈধ মান:
মান | বর্ণনা |
---|
META | মেটা মেটা কী এর সাথে মিলে যায়। |
CTRL | কন্ট্রোল মেটা কী এর সাথে মিলে যায়। |
ALT | Alt মেটা কী এর সাথে মিলে যায়। |
SHIFT | শিফট মেটা কী এর সাথে মিলে যায়। |
SYM | সিম মেটা কী এর সাথে মিলে যায়। |
ফাংশন | ফাংশন মেটা কী এর সাথে মিলে যায়। |
দ্রষ্টব্য : আপনি একটি বৈশিষ্ট্যে একাধিক কীওয়ার্ড নির্দিষ্ট করতে পারেন। উদাহরণস্বরূপ, android:alphabeticModifiers="CTRL|SHIFT"
নির্দেশ করে যে সংশ্লিষ্ট মেনু আইটেমটি ট্রিগার করার জন্য, ব্যবহারকারীকে শর্টকাট সহ কন্ট্রোল এবং শিফট মেটা কী উভয়ই টিপতে হবে।
আপনি প্রোগ্রামগতভাবে বৈশিষ্ট্যের মান সেট করতে setAlphabeticShortcut()
পদ্ধতি ব্যবহার করতে পারেন। alphabeticModifier
অ্যাট্রিবিউট সম্পর্কে আরও তথ্যের জন্য, alphabeticModifiers
দেখুন।
-
android:numericModifiers
- কীওয়ার্ড । মেনু আইটেমের সংখ্যাসূচক শর্টকাটের জন্য একটি সংশোধক। ডিফল্ট মান নিয়ন্ত্রণ কী এর সাথে মিলে যায়। বৈধ মান:
মান | বর্ণনা |
---|
মেটা | মেটা মেটা কী এর সাথে মিলে যায়। |
CTRL | কন্ট্রোল মেটা কী এর সাথে মিলে যায়। |
ALT | Alt মেটা কী এর সাথে মিলে যায়। |
SHIFT | শিফট মেটা কী এর সাথে মিলে যায়। |
SYM | সিম মেটা কী এর সাথে মিলে যায়। |
ফাংশন | ফাংশন মেটা কী এর সাথে মিলে যায়। |
দ্রষ্টব্য : আপনি একটি বৈশিষ্ট্যে একাধিক কীওয়ার্ড নির্দিষ্ট করতে পারেন। উদাহরণস্বরূপ, android:numericModifiers="CTRL|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.
}