کار با پاپ آپ منو(PopupMenu)

به نام خدا،در ادامه آموزش های زامارین ،امروز می خواهیم با  PopupMenu آشنا بشیم.PopupMenu به برنامه نویس این امکان را میدهد که در هر بخشی از برنامه از یک منو پاپ اپ به صورت پنجره جداگانه امکاناتی به  کاربر بده.برای شروع کار در داخل پوشه  Resources یک پوشه جدید ایجاد کنید (برای ساخت پوشه جدید بر روی پوشه  Resources  کلیک راست کرده و گزینه Add و سپس New Folder را انتخاب کنید)و نام این پوشه را  Menu قرار میدیم.در داخل فایل Menu باید یک فایل xml ایجاد کرده و نامش را popup_menu.xml قرار می دهیم. در داخل این فایل از چند ایتم (item) برای  برای نمایش در PopupMenu  استفاده می کنیم.

 <?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/item1"
android:title="item 1" /> 
<item android:id="@+id/item1"
android:title="item 2" /> 
<item android:id="@+id/item1"
android:title="item 3" />
</menu>

در قدم بعدی از ساخت PopupMenu میریم به سراغ کلاس MainActivity.cs و نوشتن کد های سی شارپ برنامه.در کدهای زیر ما از یک  Button برای نمایش پاپ آپ منو استفاده می کنیم.سپس با استفاده از دستور Click برای دکمه یک رویداد کلیک تعریف می کنیم.این دستور زمانی که بر روی دکمه کلیک شد فعال شده  پاپ آپ منو نمایش داده میشود.برای اینکه برنامه ما قادر به نمایش منو باشد باید آیتم های را که در فایل popup_menu.xml ساختیم را فراخوانی کنیم.با استفاده از دستور menu.Inflate این کار با انجام میدهیم.

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

 using System;
using Android.App;
using Android.Content;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;

//Appinapps.com
namespace PopupMenu_appinapps
{
[Activity (Label = "PopupMenu_appinapps", MainLauncher = true)]
public class MainActivity : Activity
{
protected override void OnCreate (Bundle bundle)
{
base.OnCreate (bundle);

// Set our view from the "main" layout resource
SetContentView(Resource.Layout.Main);

// Get our button from the layout resource,
// and attach an event to it
Button showPopupMenu = FindViewById<Button> (Resource.Id.myButton);

showPopupMenu.Click += (s, arg) => {

PopupMenu menu = new PopupMenu (this, showPopupMenu);

// with Android 3 need to use MenuInfater to inflate the menu
// menu.MenuInflater.Inflate (Resource.Menu.popup_menu, menu.Menu);

// with Android 4 Inflate can be called directly on the menu
menu.Inflate (Resource.Menu.popup_menu);

menu.MenuItemClick += (s1, arg1) => {
Toast.MakeText(this,"Click" + arg1.Item.TitleFormatted,ToastLength.Long).Show();
};

//the DismissEvent
menu.DismissEvent += (s2, arg2) => {
//Your Events
};

menu.Show ();
};
}
//Appinapps.com

} 
}

سورس این آموزش را از این لینک دانلود کنید.


فایلهای ضمیمه
توجه! هیچ فایل ضمیمه ای برای این مطلب یافت نشد

نظرات شما نظر جدید