خانه اندروید

800 ساعت آموزش اختصاصی

بیش از 30 هزار دانشجو

آموزش های پروژه محور

مطالب پیشنهادی حتما مشاهده کنید :

آموزش ایجاد کردن Android Menus

آموزش ایجاد کردن Android Menus 

آموزش ایجاد کردن Android Menus

ایجاد کردن منو menu اندروید استودیو android studio menu

Android Menus ، عرض سلام و وقت بخیر خدمت کاربران گرامی سایت خانه اندروید قصد داریم در این پست آموزش ایجاد کردن منو در اندروید استودیو رو آموزش بدیم خدمت شما دوستان عزیز ، و امیدواریم این آموزش تصویری مورد پسند شما دوستان عزیز قرار بگیره همان طور از تصاویر بالا مشخص هست android menus در برخی موارد خیلی کاربرد داره مثلا شما تلگرام رو در نظر بگیرد وقتی عضو کانال و یا گروهی هستید در گوشه سمت راست گروه دکمه هست که با انتخاب اون دکمه منو پاپ آپ فراخوانی می شود که search و … رو نمایش می دهد به این منو توی اندروید Android Menus گفته میشه.

آموزش ایجاد کردن منو در اندروید استودیو  Android Menus :

برای ایجاد منو در اندروید استودیو مراحل را به صورت تصویری برای شما دوستان عزیز قرار داده ایم :

آموزش ایجاد کردن Android Menus

آموزش ایجاد کردن Android Menus

 

پس از اینکه مراحل فوق رو پیش رفتیم از منو Resurce type پوشه menu را انتخاب می کنیم و سپس روی ok کلیک می کنیم تا در Res اندروید استودیو پوشه تحت عنوان menu ایجاد شود.حالا نوبت این میرسه تا یک فایل xml برای منو خودمون ایجاد کنیم پس روی فولدر menu کلیک راست می کنیم و روی menu resouce file کلیک می کنیم و سپس نام را به منو خودمون اختصاص می دهیم.

Syntax of Android Menus

Menus-android

 

توضیحات : تگ ها :

تگ کلمه کلیدی menu برای ایجاد کردن یک منو می باشد.

تگ کلمه کلیدی items برای ایجاد کردن یک ایتم در منو می باشد.

نکته ۱ : پس از ایجاد کردن منو و ایتم حتما نامی را باید به منو خودمون اختصاص بدیم در غیر این صورت اروری مشاهده می کنیم پس نام الزامی باشد.

نکته ۲ : منو باید دارای یک id باشد تا دسترسی داشته باشیم از طریق جاوا و کنترل خاصی روی این منوها داشته باشیم مثل select منو ها که کاربر هر کدوم رو انتخاب کردن با توجه به منو انتخاب شده کار خاصی را برای او انجام بدهیم.

<item
    android:id="@+id/about"
    android:orderInCategory="100"
    app:showAsAction="always"
    android:icon="@mipmap/ic_launcher"
    android:title="درباره ما"/>

 

توضیح سورس کد بالا :

android:id="@+id/about"

منو ما دارای یک id هست برای دسترسی

android:orderInCategory="100"

موقعیت نمایش منو را مشخص می کند در toolbar یا اکشن بار

app:showAsAction="always"

حتما برای شما پیش اومده که در اکشن بار دکمه جستجو و یا غیره وجود داره و همیشه هم ثابت هست کلمه ای که این کارو برای ما توی اندروید انجام میده always هست به معنی همیشگی یعنی این منو به صورت همیشگی در اکشن بار وجود داره. که namespace مربوط به این تگ هم باید فراخوانی شود.

xmlns:app="http://schemas.android.com/apk/res-auto">

برای قرار دادن ایکن برای منو ها باید از سورس کد زیر استفاده کنیم سپس icon رو به منو اختصاص بدیم.

android:icon="@mipmap/ic_launcher"

دقت کنید من به صورت پیشفرض ایکن را از قسمت mipmap مسیر دهی کرده ام و اگر قصد شما نمایش از قسمت Drawable هست پس لطفا مسیردهی را انجام بدید.

android:title="درباره ما"

همان طور که صحبت کرده ایم گفتیم برای منو خودمون باید یک title مشخص کنیم که در بالا این title را با نام درباره ما ست کرده ایم.

دوستان عزیز دقت کنید پس از اجرا شما منویی رو توی اکتیویتی خودتون نمی بینید دلیلش به خاطر فراخوانی نشدن این قسمت هست که باید در اکتیویتی که می خواهید منو ایجاد شود فراخوانی کنید. که در اینجا من Mainactitivty ایجاد کرده ام پس داخل کد جاوا هم فراخوانی می کنم.که نام منو من menus هست.

متد زیر را در جاوا فراخوانی کنید.

public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menus, menu);
    return true;
}

اما اگه قراره وقتی روی یک ایتم کلیک شد به اکتیویتی دیگه بریم و یا کار خاصی رو انجام بدیم باید select اون قسمت رو پیاده سازی کنیم.

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId())
    {
        case R.id.about:
            سورس کد انتقال به اکتیویتی دیگه به عنوان مثال :

        Intent intent=new Intent(MainActivity.this,about.class);
            break;
        default:
            return super.onOptionsItemSelected(item);
    }
}

سورس کد کلی :

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }



    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menus, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId())
        {
            case R.id.about:

            Intent intent=new Intent(MainActivity.this,about.class);
                break;
            default:
                return super.onOptionsItemSelected(item);
        }
    }

}

موفق باشید.
منبع آموزش : خانه اندروید

درباره نویسنده

جواد محمدی هستم بنیان‌گذار سایت خانه اندروید در خدمتون هستیم با آموزش و مفاهیم برنامه نویسی اندروید-نزدیک به 10 سال هست در حوزه برنامه نویسی فعالیت می کنم. مسلط به kotlin,java,flutter,php هستم . در خانه اندروید دانستی های خودم را در اختیار تمامی علاقمندان به برنامه نویسی قرار میدم.تشکر از اینکه خانه اندرورید رو دنبال می کنید.

قبل از ارسال دیدگاه

  • قبل از ارسال دیدگاه: لطفا دیدگاه خودتون رو فقط در مورد این مطلب بنویسید.سپاسگزارم.

    دیدگاه های طولانی نادیده گرفته می شوند لذا دیدگاه خودتان را در دو خط خلاصه کنید.

    دیدگاه های که شامل توهین یا متن توهین آمیز اصلا تایید نمی شود.

    به دیدگاه های بی نام و نشان که ایمیل فیک و نام فیک وارد می کنند پاسخ داده نمی شود

7 دیدگاه

  1. eman گفت:

    سلام دوست عزیز سوالی داشتیم اینکه ما تمام کارهای بالا را انجام دادیم ولی با ۲ تا خطا مواجه شدیم :
    about
    item

  2. مهدی گفت:

    واقعا عالی بود.

  3. یکی گفت:

    مهندس کدوم عضوش را میخاین !!!

  4. رضا گفت:

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

    • Admin گفت:

      سلام و احترام رضا عزیز
      خدمت شما عرض کنم از اینکه فیلم جدیدی نتونستم تهیه کنم ازتون عضو خواهی می کنم واقعا تابستان ها یکم سرم شلوغه به خاطر همین ازتون واقعا عضو خواهی می کنم حتما فیلم جدیدی اگر فرصت کردم در اختیارتون قرار میدم.
      با احترام.