آموزش ایجاد کردن Android Menus
ایجاد کردن منو menu اندروید استودیو android studio menu
Android Menus ، عرض سلام و وقت بخیر خدمت کاربران گرامی سایت خانه اندروید قصد داریم در این پست آموزش ایجاد کردن منو در اندروید استودیو رو آموزش بدیم خدمت شما دوستان عزیز ، و امیدواریم این آموزش تصویری مورد پسند شما دوستان عزیز قرار بگیره همان طور از تصاویر بالا مشخص هست android menus در برخی موارد خیلی کاربرد داره مثلا شما تلگرام رو در نظر بگیرد وقتی عضو کانال و یا گروهی هستید در گوشه سمت راست گروه دکمه هست که با انتخاب اون دکمه منو پاپ آپ فراخوانی می شود که search و … رو نمایش می دهد به این منو توی اندروید Android Menus گفته میشه.
آموزش ایجاد کردن منو در اندروید استودیو Android Menus :
برای ایجاد منو در اندروید استودیو مراحل را به صورت تصویری برای شما دوستان عزیز قرار داده ایم :
پس از اینکه مراحل فوق رو پیش رفتیم از منو Resurce type پوشه menu را انتخاب می کنیم و سپس روی ok کلیک می کنیم تا در Res اندروید استودیو پوشه تحت عنوان menu ایجاد شود.حالا نوبت این میرسه تا یک فایل xml برای منو خودمون ایجاد کنیم پس روی فولدر menu کلیک راست می کنیم و روی menu resouce file کلیک می کنیم و سپس نام را به منو خودمون اختصاص می دهیم.
Syntax of Android Menus
توضیحات : تگ ها :
تگ کلمه کلیدی 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); } } }
موفق باشید.
منبع آموزش : خانه اندروید
تصور نمیکردم پاسخ بدید.ممنون که وقت گذاشتید و جوابم رو در مورد آیکن دادید.عمرتون پربرکت.
سلام و درود
تشکر از شما
موفق باشین.
سلام عزیز بزرگوار
من یک تولبار درست کردم از طریق ویجت تولبار
که دارای آیکن های سرچ و خانه و یک آیکن دیگر هست
آیتم های که در قسمت اکشن بار هستند یعنی اون بالا مشکلی ندارد و آیکن دارند اما بقیه که با زدن سه نقطه بصورت کشویی باز میشوند آیکن ندارند و فقط تکست دارند حالت های always never ifroom و غیره رو هم تست کردم ولی به خواسته خودم که گذاشتن آیکن در اون قسمت بازشونده منو هست نرسیدم
امکانش هست راهنمایی بفرمایید
سلام و درود
باید به واسطه فولدر drawble و اتروبیوت icon براش ست کنید. سپس خاصیت show actionAsaction رو هم برابر با مقدارهای زیر قرار بدین.
android:icon=”@drawable/img”
android:showAsAction=”ifRoom|withText”
موفق باشین.
سلام دوست عزیز سوالی داشتیم اینکه ما تمام کارهای بالا را انجام دادیم ولی با ۲ تا خطا مواجه شدیم :
about
item
سلام و احترام
حتما ایدی یک چیزی دیگه ست کردین بزرگوار بررسی کنید.
با احترام.
واقعا عالی بود.
مهندس کدوم عضوش را میخاین !!!
سلام و احترام دوست عزیز
متوجه منظور شما نشدم واقعا
واضح تر بیان کنید.
با احترام.
دادا فیلم بزار خدایی من دارم اموزش متریال درست میکنم واس خودم لطفا فیلم همه رو بزار
سلام و احترام رضا عزیز
خدمت شما عرض کنم از اینکه فیلم جدیدی نتونستم تهیه کنم ازتون عضو خواهی می کنم واقعا تابستان ها یکم سرم شلوغه به خاطر همین ازتون واقعا عضو خواهی می کنم حتما فیلم جدیدی اگر فرصت کردم در اختیارتون قرار میدم.
با احترام.