Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Menu podręczne (nazywane również menu skrótami) to menu, które jest zakotwiczone w określonym widoku. W poniższym przykładzie pojedyncze działanie zawiera przycisk. Gdy użytkownik naciągnie przycisk, zostanie wyświetlone menu podręczne z trzema elementami:
Tworzenie menu podręcznego
Pierwszym krokiem jest utworzenie pliku zasobu menu dla menu i umieszczenie go w obszarze Zasoby/menu. Na przykład poniższy kod XML to kod menu z trzema elementami wyświetlanymi na poprzednim zrzucie ekranu , Zasoby/menu/popup_menu.xml:
<?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>
Następnie utwórz wystąpienie PopupMenu obiektu i zakotwiczyć je w widoku. Podczas tworzenia wystąpienia PopupMenuklasy należy przekazać jego konstruktorowi odwołanie do obiektu Context , a także widok, do którego zostanie dołączone menu. W związku z tym menu podręczne jest zakotwiczone do tego widoku podczas jego budowy.
W poniższym przykładzie element PopupMenu jest tworzony w procedurze obsługi zdarzeń kliknięcia dla przycisku (o nazwie showPopupMenu). Ten przycisk jest również widokiem, do którego PopupMenu jest zakotwiczony, jak pokazano w poniższym przykładzie kodu:
showPopupMenu.Click += (s, arg) => {
PopupMenu menu = new PopupMenu (this, showPopupMenu);
};
Na koniec menu podręczne musi być zawyżone za pomocą zasobu menu, który został utworzony wcześniej. W poniższym przykładzie dodano wywołanie metody Inflate menu, a jej metoda Show jest wywoływana w celu jej wyświetlenia:
showPopupMenu.Click += (s, arg) => {
PopupMenu menu = new PopupMenu (this, showPopupMenu);
menu.Inflate (Resource.Menu.popup_menu);
menu.Show ();
};
Obsługa zdarzeń menu
Gdy użytkownik wybierze element menu, zostanie wyświetlone zdarzenie MenuItemClick kliknięcie, a menu zostanie odrzucone. Naciśnięcie dowolnego miejsca poza menu spowoduje po prostu jego odrzucenie. W obu przypadkach, gdy menu zostanie odrzucone, zostanie podniesiona jego wartość DismissEvent . Poniższy kod dodaje programy obsługi zdarzeń zarówno dla zdarzeń, jak MenuItemClick i DismissEvent :
showPopupMenu.Click += (s, arg) => {
PopupMenu menu = new PopupMenu (this, showPopupMenu);
menu.Inflate (Resource.Menu.popup_menu);
menu.MenuItemClick += (s1, arg1) => {
Console.WriteLine ("{0} selected", arg1.Item.TitleFormatted);
};
menu.DismissEvent += (s2, arg2) => {
Console.WriteLine ("menu dismissed");
};
menu.Show ();
};
