menu

এই পর্বে আমরা শিখবো কিভাবে মেন্যু নিয়ে আমরা কাজ করতে পারি । অ্যাপের ভিতর মেন্যু হয় ৪ রকমের -

                               ১  - Options Menu
                               ২ - Context Menu
                               ৩ - Contextual Menu
                               ৪ - Popup Menu

options Menu ( ActionBar এ যে মেন্যু দেখানো হয় ) দেখতে এরকম -



Context Menu (যখন কোন কিছুতে ক্লিক করলে আর একটি লিস্ট আইটেম শো করে ) দেখতে -

 

Contextual Menu (যখন কোন মেন্যুর উপর আমরা ২-১ সেকেন্ড হোভার বা ধরে রাখি ) দেখতে  -



Popup Menu দেখতে -


প্রথমে Options Menu নিয়ে কাজ করা যাক -

মেন্যু নিয়ে কাজ করতে নতুন একটি ডিরেক্টর ফাইল তৈরি করতে হবে যার নাম থাকবে  menu ।

তো চলুন নতুন ডিরেক্টর ফাইল তৈরি করা যাক -  res->New-> Directory :-


নতুন ডিরেক্টর ফাইল এর নাম menu ই দিতে হবে । অন্য কোন নাম দিলে হবে নাহ ।

এবার  menu ফোল্ডার এর ভিতর মেন্যু তৈরি করতে নতুন Xml ফাইল তৈরি করতে হবে । মেন্যুর জন্য Xml ফাইল তৈরি করতে - menu->New->Menu resource file :-


Menu resource file এর নাম দিলাম options_menu । তাহলে যে Xml ফাইল টা তৈরি হল -

 <?xml version="1.0" encoding="utf-8"?>  
 <menu xmlns:android="http://schemas.android.com/apk/res/android">  
 </menu>  

এবার যে মেন্যুগুলো তৈরি করবো সেগুলো Menu ট্যাগের ভিতর এক একটি item ট্যাগের ভিতর নিবো ।  তো মেন্যু হিসেবে চলুন কতগুলো সোশ্যাল মিডিয়ার একটি লিস্ট তৈরি করা যাক -

options_menu.xml -

 <?xml version="1.0" encoding="utf-8"?>  
 <menu xmlns:android="http://schemas.android.com/apk/res/android"  
   xmlns:app="http://schemas.android.com/apk/res-auto">  
   <item android:id="@+id/facebook"  
     android:title="Facebook"></item>  
   <item android:id="@+id/twitter"  
     android:title="Twitter"></item>  
   <item android:id="@+id/whatsapp"  
     android:title="Whatsapp"></item>  
   <item android:id="@+id/instagram"  
     android:title="Instagram"></item>  
 </menu>  

যে মেন্যু টা আমরা দেখাতে চাই তার লিস্ট তৈরি করে ফেললাম । এবার এটা যে এক্টিভিটি তে দেখাতে চাই সেখানে এটা শো করানোর কোড লিখতে হবে -

MainActivity.java -

 @Override  
   public boolean onCreateOptionsMenu(Menu menu) {  
     MenuInflater menuInflater = getMenuInflater();  
     menuInflater.inflate(R.menu.options_menu,menu);  
     return super.onCreateOptionsMenu(menu);  
   }  

মেন্যু শো করানোর জন্য onCreate ম্যাথডের বাইরে onCreateOptionsMenu ম্যাথডটি লিখতে হবে । ম্যাথডের ভিতরে  Inflater ব্যাবহার করলাম । কোন এক্টিভিটিতে যখন আমরা একের অধিক xml ফাইল ব্যাবহার করবো তখন Inflater ব্যাবহার করতে হয় । Inflater দুই ধরনের - layoutInflater এবং menuInflater । আমরা যেহেতু এখানে মেন্যু তৈরি ব্যাবহার করছি তাই menuInflater এর অব্জেক্ট তৈরি করলাম যেটি মেন্যু রিটার্ন করবে getMenuInflater() ম্যাথড দ্বারা ।

এরপরের লাইনে menuInflater এর অব্জেক্ট এর সাথে xml ফাইলটি এবং মেন্যু ক্লাসটি এড করে দিলাম । এবার অ্যাপটি রান করুন । তাহলে উপরের ডানের দিকে ( : ) এ ক্লিক করলে আমরা যে লিস্ট টি দেখতে পাবো -




চলুন মেন্যু আইটেম টা আরো একটু সুন্দর করা যাক (options_menu.xml এ ) -


showAsAction ট্যাগ মানে হল এটি ActionBar এ দেখাবে কিনা। এটি ইউজ করলে যে ৫ টি ভ্যালু আসে  তা হল -
never -                         এটি ActionBar এ দেখাবে কখনো দেখাবে নাহ
collapseActionView - ঃ এর ভিতরে লিস্ট আকারেই দেখাবে
withText -                    আইকন ইউজ করলেও টেক্স দেখাবে
ifRoom -                      যদি ActionBar এ জায়গায় খালি থাকে তবে দেখাবে
always-                        সবসময়ই ActionBar এ দেখাবে

এই ডিজাইনের ক্ষেত্রে আমি প্রত্যেকটি তে ifRoom ব্যাবহার করলাম । এবং icon ট্যাগের সাহায্যে আইকন ও ব্যাবহার করলাম । আইকন এর ক্ষেত্রে নিয়ম হল লিস্টের যেসব অপশন  ActionBar এ দেখা যাবে সেগুলোর ক্ষেত্রে আইকন দেখাবে কিন্তু : তে ক্লিক এর মাধ্যমে যেসব অপশন শো করানো হবে সেখানে আইকন দেখাবে নাহ । বিভিন্ন আইকন ফ্রি ডাউনলোড করতে https://www.flaticon.com/  এই ওয়েবসাইট এর সাহায্য নিতে পারেন ।

আমাদের xml কোড টা -

 <?xml version="1.0" encoding="utf-8"?>  
 <menu xmlns:android="http://schemas.android.com/apk/res/android"  
   xmlns:app="http://schemas.android.com/apk/res-auto">  
   <item android:id="@+id/facebook"  
     android:title="Facebook"  
     app:showAsAction="ifRoom"  
     android:icon="@drawable/facebook"></item>  
   <item android:id="@+id/twitter"  
     android:title="Twitter"  
     app:showAsAction="ifRoom"  
     android:icon="@drawable/twitter"></item>  
   <item android:id="@+id/whatsapp"  
     android:title="Whatsapp"  
     app:showAsAction="ifRoom"  
     android:icon="@drawable/whatsapp"></item>  
   <item android:id="@+id/instagram"  
     android:title="Instagram"  
     app:showAsAction="ifRoom"  
     android:icon="@drawable/instagram"></item>  
 </menu>  

এবার আবার অ্যাপটি রান করুন । তাহলে আমরা এরকম দেখতে পাবো -



আজকে এ পর্যন্তই । আগামী পর্বে এখান থেকেই শুরু করবো আমরা । সেখানে দেখানো হব এই লিস্টের কোন অপশন এ ক্লিক করলে সেই কার্যক্রম কিভাবে করা হয় সেটি । এরপর আমরা অন্যান্য মেন্যু গুলো দেখবো । 

মন্তব্যসমূহ

এই ব্লগটি থেকে জনপ্রিয় পোস্টগুলি

Spinner View - 11 ( Android Bangla Tutorial)

ImageView ( Android Bangla Tutorial - )

Toggle Button - 10 ( Android Bangla Tutorial)