سیستم عامل اندروید امروزه یکی از سیتستم عامل های بسیار مطرح و قدرتمند بوده و به دلیل تعداد بالای استفاده کنندگان از این سیستم عامل تعداد بسیار زیادی از برنامه نویسان در همه جای دنیا ازاین سیستم عامل به عنوان بستری مناسب برای ارائه نرم افزار های خود استفاده میکنند. همین بازار جذاب اندروید باعث شده است که خیلی از افراد نیز به برنامه نویسی اندروید علاقه مند شده و شروع به کار به برنامه نویسی برای اندروید کنند. از همین رو در این مقاله قصد داریم تا شما را با نحوه ساخت منو در اندروید استودیو آشنا کنیم و یک منو را برای نمونه با هم بسازیم اما پیش از هرچیزی ابتدا باید با انواع منو ها در اندروید آشنا شویم و ببینیم که اساساً چند نوع مختلف منو در اندروید وجود دارد و نحوه کار هرکدام از آن ها چگونه است.


انواع منوها در اندروید استودیو

به طور کلی در اندروید سه نوع منوی اصلی داریم این منوها عبارتند از

  • منو Option
  • منو Context
  • منو Pop-up

هرکدام از این منوها دارای نحوه ایجاد متفاوت و همچنین نحوه کار متفاوتی هستند که باید درباره نحوه کار آن ها توضیح مختصری را بدهیم.

منو Option

شاید با خواندن نام این منو بتوانید به نحوه کار آن به خوبی پی ببرید. منو آپشن ( Option Menu ) یکی از منو های اولیه و اصلی است که هرکدام از گزینه های آن تاثیری روی برنامه دارند. این مورد به این معنی است که برای مثال هنگامی که در برنامه نوشته شده خود باید گزینه Search را قرار دهیم میتوانیم از این منو برای قرار دادن این گزینه استفاده کنیم.

منو Context

این منو دومین نوع از منو های اندروید است که اگر با اندروید کار کرده باشید مطمئناً این منو رو زیاد مشاهده کرده اید. Context Menu در حقیقت منویی است که بعد از یک کلیک طولانی برروی صفحه ظاهر میشود. اگر بخواهیم این منو را با مثالی برای شما شرح دهیم میتوانیم به مرورگر اشاره کنیم. هنگامی که در مرورگر خود دست خود را برروی تصویری نگه میداریم و منویی برای ما ظاهر می شود. این منو در حقیقت همان منوی Context است.

منو Pop-up

Pop-up menu در حقیقت منویی است که موارد را به صورت یک لیست عمودی نشان داده و همیشه مواردی اضافی برای یک محتوا را نمایش میدهد. شاید برای شما نیز این سوال به وجود بیاید که این موارد اضافی به چه معنی هستند؟ در پاسخ به این سوال باید گفت که موارد اضافی مواردی است که برروی خود برنامه تاثیر مستقیم ندارند و در حقیقت برای موارد overflow ( ویکی پدیا ) یک فرمان که مربوط به یک محتوا در برنامه ما است استفاده می شود.

ساخت منو در اندروید استودیو

چگونه در اندروید استودیو منو بسازیم؟

پس از آشنایی با انواع منو ها حال باید ببینیم چگونه میتوانیم یک منو را بسازیم. برای ساخت منو در اندروید استودیو باید یک فرمت XML استاندارد را تعریف کرده که با واسطه آن میتوان تمام منو های بالا را ساخت. در حقیقت به جای اینکه در برنامه خود منو را تعریف کنید. منو و تمام فعالیت های مربوط به آن را درودن یک فایل XML میسازیم و در هنگام کدنویسی از این فایل XML به عنوان یک شی استفاده کرده و آن را فراخوانی میکنیم. برای آشنایی بیشتر با نحوه کدنویسی و همچنین نحوه کار منو ها باهم شروع به ساخت منو میکنیم.

مراحل ساخت منو در اندروید استودیو

برای ساخت منوها باید در ابتدا یک menu_file.xml را تعریف کنیم و برای تعریف فولدر menu_file.xml ابتدا باید دایرکتوری منو در فولدر res را به نحو زیر اجرا کنیم.

پس از انجام این مرحله Resource type و Directory name را مطابق شکل زیر به Menu تغییر میدهیم.

حال باید Menu را در زیر دایرکتوری res مشاهده کنیم و به شکل زیر یک menu_file.xml را ایجاد میکنیم.

ساخت منو در اندروید استودیو

یک نام به مانند menu_file.xml را برای فایل انتخاب کنیم. هنگامی که فایل را باز میکنیم باید محتویاتی مانند کد زیر در آن مشاهده کنیم.

<?xml version="1.0" encoding="utf-8"?>

<menu xmlns:android="http://schemas.android.com/apk/res/android">

<item android:id="@+id/i1"

android:title="item"

android:icon="@drawable/item" >



<!-- "item" submenu -->

<menu>

<item android:id="@+id/a"

android:title="subitem a"

android:icon="@drawable/subitem_a"/>

<item android:id="@+id/b"

android:title="subitem b"

android:icon="@drawable/subitem_b" />

</menu>

</item>

</menu>

تگ <menu>  در کد بالا شامل آیتم های منو است و باید به عنوان فایل و گره اصلی در برنامه حضور داشته باشد. این تگ میتواند شامل تعدادی از item ها و Gorup ها باشد. همچنین تگ <item> سازنده آیتم های منو است و دارای قابلیت های بسیاری برای ساخت منو ها و رفتار آن ها است. شکل زیر ویژگی هایی است که در کد بالا از آن ها استفاده شده است.

ساخت option menu در اندروید

حال که با نحوه ساخت فایل و ویژگی های اولیه و تگ های اولیه آشنا شدیم زمان ساخت یک منو آپشن در درون برنامه است. برای اینکار باید به شکل زیر یک onCreateOptionsMenu() ایجاد کنیم.

@Override  public boolean onCreateOptionsMenu(Menu menu) {  MenuInflater inflater = getMenuInflater();      inflater.inflate(R.menu.menu_file, menu);      return true;  }

در کد بالا از یک Menu Inflater استفاده میکنیم که در حقیقت برای تبدیل یک کد XML به کد جاوا استفاده می شود.

هنگامی که کاربر برروی منو ما کلیک میکند سیستم فعالیت onOptionsItemSelected() را صدا زده و با استفاده از این متد میتوانید انتخاب Item مورد نظر را انجام دهیم و با صدا کردن getItemId() به سادگی متوجه شویم که ID گزینه انتخابی کدام است.

@Overridepublic boolean onOptionsItemSelected(MenuItem item) {    //Handle item selection    switch (item.getItemId()) {        case R.id.i1:            //perform any action;            return true;        case R.id.a:             //perform any action;            return true;        case R.id.b:             //perform any action;            return true;        default:            return super.onOptionsItemSelected(item);    }}

هنگامی که توانستیم با موفقیت انتخاب یک عنوان از منو را پشت سر بگذاریم نوشته True برای ما نمایش داده می شود. اما اگر این اتفاق نیافتاد باید onoptionsItemSelected() را صدا زده و این super class برای ما مقدار False را به نمایش در می آورد.

ساخت منو در اندروید استودیو

در این مقاله به بررسی ساخت یک منو آپشن و همچنین چگونگی ایجاد انواع منو ها در اندروید آشنا شدیم. این منوها بسته به نوع کار شما به کمک شما خواهند آمد و وجود منوها در برنامه اندرویدی شما بسیار مهم و کاربردی است و نحوه کار آن ها عملکرد بسیار مهمی در تجربه کاربری اپ شما خواهد داشت.