آموزش برنامه نویسی اندروید فصل سوم
آموزش اندروید فصل سوم قسمت ششم – حفظ اطلاعات
تیر ۵, ۱۳۹۵
آموزش برنامه نویسی اندروید فصل سوم
آموزش اندروید فصل سوم قسمت هشتم – رابط کاربری پویا
تیر ۸, ۱۳۹۵
آموزش برنامه نویسی اندروید فصل سوم

آموزش برنامه نویسی اندروید فصل سوم

در قسمت بیست و پنجم آموزش اندروید در رابطه با نوار اکشن و نحوه سفارشی کردن آن با یک پروژه صحبت کرده ایم.

آموزش اندروید فصل سوم قسمت هفتم – نوار اکشن

توجه : برای مشاهده تصاویر در سایز اصلی برروی آنها کلیک کنید.

استفاده از نوار اکشن

علاوه بر فرگمنت ها ویژگی دیگری که در اندروید ۳ و ۴ از آن رونمایی شد Action bar یا نوار اکشن است.در گذشته نوار اکشن در بالای صفحه نمایش دیده می شد حال نوار اکشن که حاوی آیکون برنامه و عنوان اکتیویتی است جای آن را گرفته.همچنین به صورت دلخواه میتوان از action item یا گزینه های اکشن نیز در این نوار استفاده نمود.

برای درک بیشتر پروژه جدیدی به نام ActionBarPrj ایجاد کرده و بدون هیچ تغییری آن را اجرا میکنیم و نتیجه زیر را مشاهده خواهیم کرد

آموزش کاربردی اندروید-قسمت بیست و پنجم

همانگونه که مشاهده میکنید نوار اکشن در بالای صفحه نمایش داده شده حال میخواهیم آن را پنهان کنیم. برای این کار دو راه وجود دارد یکی اینکه در فایل manifest برنامه چنین کدنویسی کنیم

 android:theme="@android:style/Theme.Holo.NoActionBar"

ودیگری اینکه در کلاس جاوا برنامه چنین کدنویسی کنیم

import android.os.Bundle;

import android.app.ActionBar;

import android.app.Activity;



public class MainActivity extends Activity {



        @Override

        protected void onCreate(Bundle savedInstanceState) {

                 super.onCreate(savedInstanceState);

                 setContentView(R.layout.activity_main);

                 ActionBar ab= getActionBar();

                 ab.hide();

//ab.show();  //--show it again

        }

}

حال با اجرای برنامه خواهید دید که نوار اکشن دیده نمیشود و همانطور که در کدنویسی ها مشخص شده با اجرای دستور ab.show() میتوان دوباره نوار اکشن را دید.پس ازا جرا نتیجه رامیتوان بدین صورت مشاهده کرد

آموزش کاربردی اندروید-قسمت بیست و پنجم

روش کار

خصوصیت android:theme این قابلیت را به شما میدهد تا با مقداردهی @android:style/Theme.Holo.NoActionBar نوار اکشن را پنهان کنید و راه دیگر نیز استفاده از متد ()getActionBar برای رجوع به نوار اکشن است سپس برای پنهان کردن متد ()hide و آشکار کردن متد ()show را فراخوانی میکنیم.

به این نکته باید دقت کرد که اگر از خصوصیت android:Theme برای عدم نمایش استفاده کردید به کار بردن متد ()getActionBar مقدار null برمیگرداند از این رو بهتر است همیشه از متد ()getActionBar استفاده کرد.

افزودن گزینه های اکشن به نوار اکشن

علاوه بر نمایش نام و آیکون برنامه درسمت چپ نوار اکشن میتوان گزینه هایی را نیز در کنار این نام قرار داد. این گزینه هارا Action Item گویند.این گزینه ها معمولا برای عملیات پرکاربرد در برنامه مورد استفاده قرار میگیرد برای مثال برای عملیات حذف و اضافه و… 

برای درک بیشتر به تمرین زیر دقت فرمایید.پروژه تمرین قبل در فایل MainActivity.java چنین کدنویسی میکنیم

package com.example.actionbarprj;



import android.app.ActionBar;

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.view.Menu;

import android.view.MenuItem;

import android.widget.Toast;



public class MainActivity extends Activity {

    /** Called when the activity is first created. */

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        //actionBar.setDisplayShowHomeEnabled(true);

        //actionBar.hide();

        //actionBar.show(); //---show it again---

    }



    @Override

    public boolean onCreateOptionsMenu(Menu menu) {          

        super.onCreateOptionsMenu(menu);

        CreateMenu(menu);

        return true;

    }



    @Override

    public boolean onOptionsItemSelected(MenuItem item)

    {   

         return MenuChoice(item);   

    }   



    private void CreateMenu(Menu menu)

    {

        MenuItem mnu1 = menu.add(0, 0, 0, "Item 1");

        {        

            mnu1.setIcon(R.drawable.ic_launcher);

            mnu1.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);           

        }

        MenuItem mnu2 = menu.add(0, 1, 1, "Item 2");

        {        

            mnu2.setIcon(R.drawable.ic_launcher);           

            mnu2.setShowAsAction(

                 MenuItem.SHOW_AS_ACTION_IF_ROOM);

        }

        MenuItem mnu3 = menu.add(0, 2, 2, "Item 3");

        {        

            mnu3.setIcon(R.drawable.ic_launcher);

            mnu3.setShowAsAction(

                 MenuItem.SHOW_AS_ACTION_IF_ROOM);

        }

        MenuItem mnu4 = menu.add(0, 3, 3, "Item 4");

        {           

            mnu4.setShowAsAction(

                 MenuItem.SHOW_AS_ACTION_IF_ROOM);

        }

        MenuItem mnu5 = menu.add(0, 4, 4, "Item 5");

        {           

            mnu5.setShowAsAction(

                 MenuItem.SHOW_AS_ACTION_IF_ROOM);

        }

    }



    private boolean MenuChoice(MenuItem item)

    {       

        switch (item.getItemId()) {

        case 0:

            Toast.makeText(this, "You clicked on Item 1",

                Toast.LENGTH_LONG).show();

            return true;

        case 1:

            Toast.makeText(this, "You clicked on Item 2",

                Toast.LENGTH_LONG).show();

            return true;

        case 2:

            Toast.makeText(this, "You clicked on Item 3",

                Toast.LENGTH_LONG).show();

            return true;

        case 3:

            Toast.makeText(this, "You clicked on Item 4",

                Toast.LENGTH_LONG).show();

            return true;

        case 4:

            Toast.makeText(this, "You clicked on Item 5",

                Toast.LENGTH_LONG).show();

            return true;       

        }

        return false;

    }   

}

پس از اجرای برنامه میتوان نتیجه را به شکل زیر مشاهده کرد

آموزش کاربردی اندروید-قسمت بیست و پنجم

همانگونه که در تصویر فوق مشاهده میکنید با کلیک کردن هرکدام از آیکونها یک پیغام Toast مبنی بر آیکون کلیک شده مشاهده خواهید کرد.

روش کار

گزینه های اکشن در نوار اکشن به واسطه فراخوانی متد ()onCreateOptionMenu در محل خود قرار میگیرند

@Override

    public boolean onCreateOptionsMenu(Menu menu) {          

        super.onCreateOptionsMenu(menu);

        CreateMenu(menu);

        return true;

    }

در مثال بالا از متد ()CreateMenu برای نمایش گزینه های منو استفاده میشود:

  private void CreateMenu(Menu menu)

    {

        MenuItem mnu1 = menu.add(0, 0, 0, "Item 1");

        {        

            mnu1.setIcon(R.drawable.ic_launcher);

            mnu1.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);           

        }

        MenuItem mnu2 = menu.add(0, 1, 1, "Item 2");

        {        

            mnu2.setIcon(R.drawable.ic_launcher);           

            mnu2.setShowAsAction(

                 MenuItem.SHOW_AS_ACTION_IF_ROOM);

        }

        MenuItem mnu3 = menu.add(0, 2, 2, "Item 3");

        {        

            mnu3.setIcon(R.drawable.ic_launcher);

            mnu3.setShowAsAction(

                 MenuItem.SHOW_AS_ACTION_IF_ROOM);

        }

        MenuItem mnu4 = menu.add(0, 3, 3, "Item 4");

        {           

            mnu4.setShowAsAction(

                 MenuItem.SHOW_AS_ACTION_IF_ROOM);

        }

        MenuItem mnu5 = menu.add(0, 4, 4, "Item 5");

        {           

            mnu5.setShowAsAction(

                 MenuItem.SHOW_AS_ACTION_IF_ROOM);

        }

    }

برای اینکه گزینه های منو به عنوان یک گزینه اکشن نمایش داده شود از متد ()setShowAsAction به همراه مقدار ثابت SHOW_AS_ACTION_IF_ROOM استفاده میکنیم این کار به دستگاه میفهماند که میتوان از این گزینه به عنوان یک گزینه اکشن استفاده کرد.

زمانی که یک گزینه منو توسط کاربر کلیک میشود متد ()onOptionsItemSelected فراخوانی میگردد

@Override

    public boolean onOptionsItemSelected(MenuItem item)

    {   

         return MenuChoice(item);   

    }

در اینجا از متد ()MenuChoice که خودمان نوشته ایم برای مشخص کردن آیتمی که انتخاب شده استفاده میکنیم تا بتوان پیغام مناسب را نمایش داد.

   private boolean MenuChoice(MenuItem item)

    {       

        switch (item.getItemId()) {

        case 0:

            Toast.makeText(this, "You clicked on Item 1",

                Toast.LENGTH_LONG).show();

            return true;

        case 1:

            Toast.makeText(this, "You clicked on Item 2",

                Toast.LENGTH_LONG).show();

            return true;

        case 2:

            Toast.makeText(this, "You clicked on Item 3",

                Toast.LENGTH_LONG).show();

            return true;

        case 3:

            Toast.makeText(this, "You clicked on Item 4",

                Toast.LENGTH_LONG).show();

            return true;

        case 4:

            Toast.makeText(this, "You clicked on Item 5",

                Toast.LENGTH_LONG).show();

            return true;       

        }

        return false;

{

مقادیر دیگری که میتوان از آن برای نوع اکشن آیتم ها استفاده کرد به صورت زیر است

SHOW_AS_ACTION_ALWAYS    : همیشه به صورت یک Button در نوار اکشن نمایش داده میشود.

SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW  : عملیات اکشن این آیتم به صورت collapse فرو میریزد.

SHOW_AS_ACTION_NEVER  : این آیتم را هیچگاه به صورت یک دکمه نمایش نمیدهد.

SHOW_AS_ACTION_WITH_TEXT  : آیتم را به همراه Caption آن نمایش میدهد.

مدرس : خانم مهندس داودی نژاد

آموزش اندروید فصل سوم قسمت ششم

آموزش اندروید فصل سوم قسمت هشتم

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *