آموزش برنامه نویسی اندروید فصل سوم
آموزش اندروید فصل سوم قسمت نوزدهم – ابزار نمایش GridView
مرداد ۲۱, ۱۳۹۵
آموزش برنامه نویسی اندروید فصل چهارم
آموزش اندروید فصل چهارم قسمت یکم – sharedpreference
شهریور ۵, ۱۳۹۵

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

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

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

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

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

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

به کارگیری منو ها

منو ها از نماهای پرکاربرد اندروید است و اغلب برای نمایش گزینه ها استفاده میشود اگر دقت کرده باشید ما در اندروید دونوع منو داریم:

  • OptionMenu : که به معنای منو گزینه ها نیز میباشد اطلاعات کلیدی و اصلی را دررابطه با اکتیویتی جاری نمایش میدهد که توسط گزینه منو دراندروید نمایش داده میشود
  • ContextMenu : یا منو متن شناور نیز برای نمایش گزینه ها میباشد اما با این تفاوت که گزینه های مربوط به یک ابزار نمایش یا یک عنصر را با کلیک و نگه داشتن طولانی نمایش میدهد.

مثل همیشه با استفاده از تمرینی نحوه استفاده از منو هارا بهتر درک خواهیم کرد پس پروژه ای بانام دلخواه ایجاد کرده در بخش MainActivity.java دستورات مربوط به نمایش OptionMenu را بدین صورت مینویسیم

package com.example.menuprj;



import android.app.Activity;

import android.os.Bundle;

import android.view.Menu;

import android.view.MenuItem;

import android.widget.Toast;

import android.view.*;



public class MainActivity extends Activity {



        @Override

        protected void onCreate(Bundle savedInstanceState) {

                 super.onCreate(savedInstanceState);

                 setContentView(R.layout.activity_main);

        }

        @Override

        public boolean onCreateOptionsMenu(Menu menu)

        {

                 super.onCreateOptionsMenu(menu);

                 CreateMenu(menu);

                 return true;

        }



        private void CreateMenu(Menu menu){

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

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

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

                       }

        @Override

        public boolean onOptionsItemSelected(MenuItem item){



                 Toast.makeText(getBaseContext(), "You Clciked at Item " + ((item.getItemId())+1), Toast.LENGTH_SHORT).show();

                 return false;

        }

}

روش کار

در ابتدا متد onCreateOptionsMenu تعریف شده که هنگام فشرده شدن هرکدام از آیتم های منو فراخوانی میشود و پس از فراخوانی نیز دستورات درون آن اجرا میشود

     @Override

        public boolean onCreateOptionsMenu(Menu menu)

        {

                 super.onCreateOptionsMenu(menu);

                 CreateMenu(menu);

                 return true;

        }

که دستور اول با استفاده از کلمه کلیدی super متد()onCreateOption را فراخوانی کرده و یک منو گزینه ای ایجاد میکند.در دستور دوم نیز متد CreateMenu که در ادامه کدنویسی ایجاد کرده ایم را فراخوانی کرده و منو ایجاد شده را به عنوان آرگومان ورودی ارسال میکند.

سپس متد CreateMenu را که شامل چند آیتم است را ایجاد میکنیم

private void CreateMenu(Menu menu){

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


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


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


        }

همانگونه که مشاهده میکنید برای تعریف هر آیتم از متد add که 4آرگومان به شرح زیر دارد استفاده میکنیم

  • groupId : این آرگومان نشان دهنده گروهی است که این گزینه به آن تعلق دارد که فعلا مقدار 0 میدهیم
  • itemId : این آرگومان ای دی هر آیتم را مشخص میکند که مسلما باید متفاوت باشد.
  • Order : اولویت هر آیتم را مشخص میکند.
  • Title : متن عنوان هر آیتم را مشخص میکند

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

.
        @Override

        public boolean onOptionsItemSelected(MenuItem item){

                 Toast.makeText(getBaseContext(), "You Clciked at Item " + ((item.getItemId())+1), Toast.LENGTH_SHORT).show();

                 return false;

        }

در پیغام Toast ما با استفاده از ()getItemId ای دی آیتم کلیک شده بدست آمده و +1 میشود بدین دلیل که ای دی آیتم ها از صفر شروع میشود پس یک واحد به آن اضافه میکنیم تا از 1 نمایش داده شود.

پس از اجرا نتیجه را نیز بدین صورت خواهید دید

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

حال برای نمایش یک ContextMenu تنها کافی است تغییرات جزئی را در پروژه قبل ایجاد کنیم پس شروع میکنیم

ابتدا یک ابزار Button درون activity_main.xml ایجاد میکنیم(خیلی راحت به صورت گرافیکی Button را درون صفحه خود قرار دهید)

<Button

        android:id="@+id/button1"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_alignParentTop="true"

        android:layout_centerHorizontal="true"

        android:layout_marginTop="154dp"

        android:text="Button" />

حال درون MainActivity.java خطوط Bold شده زیر را اضافه میکنیم

package com.example.menuprj;



import android.app.Activity;

import android.os.Bundle;

import android.view.Menu;

import android.view.MenuItem;

import android.widget.Button;

import android.widget.Toast;

import android.view.*;

import android.view.ContextMenu.ContextMenuInfo;



public class MainActivity extends Activity {



        @Override

        protected void onCreate(Bundle savedInstanceState) {

                 super.onCreate(savedInstanceState);

                 setContentView(R.layout.activity_main);



                 Button btn=(Button)findViewById(R.id.button1);

              btn.setOnCreateContextMenuListener(this);

        }

      @Override

      public void onCreateContextMenu(ContextMenu menu,View view, ContextMenuInfo menuinfo)

      {

              super.onCreateContextMenu(menu, view ,menuinfo);

              CreateMenu(menu);

      }



        private void CreateMenu(Menu menu){

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


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

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


        }

        @Override

        public boolean onContextItemSelected(MenuItem item){



                 Toast.makeText(getBaseContext(), "You Clciked at Item " + ((item.getItemId())+1), Toast.LENGTH_SHORT).show();



                 return false;

        }

}

اکثر بخش های کدنویسی مانند تمرین OptionMenu میباشد و تغییرات شامل تعریف Button با استفاده از ای دی و فراخوانی کردن متد setOnCreateContextMenuListener مربوط به Button (این متد این قابلیت را به ما میدهد تا با کلیک کردن و نگه داشتن Button منو فعال شود)

Button btn=(Button)findViewById(R.id.button1);

              btn.setOnCreateContextMenuListener(this);

و تغییر بعدی نیز ایجاد متد onCreateContextMenu است که برای ایجاد منو و آیتم هایش استفاده میشود و بقیه کدنویسی نیز مانند تمرین OptionMenu باقی می ماند.

برنامه را اجرا کرده و نتیجه را بدین صورت مشاهده کنید

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

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

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

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

پاسخ دهید

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