অ্যান্ড্রয়েড ইন্টারমিডিয়েট টিউটোরিয়াল ৮ঃ একশন বার

হ্যালো অ্যান্ড্রয়েড লাইম পিপল! কেমন আছেন সবাই?

আজকে আমরা অ্যান্ড্রয়েডের একশন বার নিয়ে কথা বলবো এবং শিখবো। প্রথমেই বলে নেই একশন বার কি? একশন বার হচ্ছে অ্যাপ্লিকেশনের একদম উপরে যে বারটা থাকে সেটাই! এটাতে সাধারনত আইকন, পেজ নেইম, মেনু এসব ব্যপার থাকে। আমরা নিচের ছবি দেখি। ওটাই একশন বার।

actionbar test android 2

 

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

চলুন কাজ শুরু করা যাক,
প্রথমে নিচের ছবির মত করে প্রজেক্ট ক্রিয়েট করুন, মিনিমাম এসডিকে ভারশন ১১ দিবেন। ১১ এর নিচেও একশন বার সাপোর্ট করানো যায়, তবে সেটার খুব একটা দরকার হবেনা।

create project for actionbar

create project for actionbar api 11

create project for holo light dark action bar

 

এখন আমরা একশন বারে যে মেনু থাকবে সেখানে কিছু মেন্যু এড করে নিব আগে,যাতে পরে একশন বারের কাজ ঠিক মত বুঝা যায়।
প্রথমেই res/menu/menu_main.xml ফোল্ডারে যান। এক্লিপ্স ব্যবহার করলেও সেইম জায়গায় পাবেন। তারপর নিচের কোড এড করুন,

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools" tools:context=".MainActivity">

    <!--

    From: AndroidLime.com
    By: https://facebook.com/rubel007cse
-->

    <item
        android:id="@+id/call"
        android:icon="@drawable/phone"
        android:orderInCategory="100"
        app:showAsAction="ifRoom|withText"
        android:title="Call"/>
    <item
        android:id="@+id/mail"
        android:icon="@drawable/mail"
        android:orderInCategory="100"
        app:showAsAction="ifRoom|withText"
        android:title="Mail"/>
    <item
        android:id="@+id/send"
        android:icon="@drawable/send"
        android:orderInCategory="100"
        app:showAsAction="ifRoom|withText"
        android:title="Send"/>
</menu>

showAsAction -অ্যাট্রিবিউটে ৩ ধরনের ভ্যাল্যু থাকতে পারে,
always – একশন বারে এই আইটেম সব সময় দেখাবে।
ifRoom -একশন বারে এই আইটেম জায়গা পেলে দেখাবে।
never – একশন বারে এই আইটেম কখনোই দেখাবেনা।

একশন বারে কোন মেন্যু আইটেমে আইকন এবং টেক্সট দুইটাই থাকতে পারে। বাই ডিফল্ট আইকন থাকে। আপনি যদি android:showAsAction=”ifRoom|withText“ এই অ্যাট্রিবিউট ব্যবহার করেন তাহলে আইকন টেক্সট দুইটাই দেখাবে।

এবার আমরা মেন্যুকে জাভাতে এড করবো যাতে কাজ করতে পারে। এরজন্য MainActivity.java ফাইলটা ওপেন করতে হবে। তারপর নিচের কোড এড করুন, onCreate মেথড এর বাহিরে।

   @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

মেন্যু এড করলাম আমরা। এবার মেন্যুকে কাজ করানো আমাদের কাজ, নিচের কোডগুলো লিখবো onCreate মেথড এর বাহিরে।

  @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
      /*  From: AndroidLime.com
        By: https://facebook.com/rubel007cse
         */

        if (id == R.id.call) {
            Toast.makeText(getApplicationContext(),"Clicked on Call ", Toast.LENGTH_LONG).show();
            return true;
        }
        if (id == R.id.mail) {
            Toast.makeText(getApplicationContext(),"Clicked on Mail ", Toast.LENGTH_LONG).show();

            return true;
        }
        if (id == R.id.send) {

            Toast.makeText(getApplicationContext(),"Clicked on Send ", Toast.LENGTH_LONG).show();return true;
        }
        return super.onOptionsItemSelected(item);
    }

উপরের কোড গুলোতে দেখা যাচ্ছে, কোন মেন্যুতে ক্লিক করলে কি দেখাবে তা বলা আছে। সুইচ কেস দিসে কোথায় ক্লি হইসে তা ধরা হচ্ছে। টোস্ট দিয়ে সেই মেনুর টেক্সট দেখাচ্ছে। টোস্ট এর জায়গা আপনি ঐ মেন্যুতে ক্লিক করলে কি দেখাতে চান তা লিখতে পারেন। যেমন ধরেন ফেসবুক শেয়ার, টুইটার শেয়ার ইত্যাদি।

এখন রান করলেই আমাদের প্রজেক্ট কাজ করবে।

actionbar test android

 

আমাদের একশন বার কাজ করছে।

 

একশন বার এর এই প্রজেক্টের সোর্স কোড ডাউনলোড করে নিন এখান থেকে।

 

আরো পড়ুনঃ  ক্যারিয়ার হিসেবে অ্যান্ড্রয়েড অ্যাপ্লিকেশন ডেভেলপমেন্ট

Mosharrof Rubel

আমাকে ফেসবুকে পাবেন এখানেঃ মোশাররফ রুবেল

You may also like...

Leave a Reply