Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
PopupMenu (также называемое контекстным меню) — это меню, которое привязано к конкретному представлению. В следующем примере одно действие содержит кнопку. Когда пользователь нажимает кнопку, отображается всплывающее меню с тремя элементами:
Создание всплывающего меню
Первым шагом является создание файла ресурса меню для меню и его размещение в ресурсах или меню. Например, следующий XML-код — это код для меню с тремя элементами, отображаемым на предыдущем снимке экрана: Resources/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>
Затем создайте экземпляр PopupMenu и привязите его к представлению. При создании экземпляра PopupMenuконструктор передает ссылку на Context конструктор, а также представление, к которому будет присоединено меню. В результате всплывающее меню привязано к этому представлению во время его строительства.
В следующем примере PopupMenu создается в обработчике событий нажатия кнопки (который называется showPopupMenu). Эта кнопка также представляет собой представление, к которому PopupMenu привязаны привязки, как показано в следующем примере кода:
showPopupMenu.Click += (s, arg) => {
PopupMenu menu = new PopupMenu (this, showPopupMenu);
};
Наконец, всплывающее меню должно быть раздуваемо с помощью ресурса меню, созданного ранее. В следующем примере добавляется вызов метода Inflate меню и вызывается его метод Show, чтобы отобразить его:
showPopupMenu.Click += (s, arg) => {
PopupMenu menu = new PopupMenu (this, showPopupMenu);
menu.Inflate (Resource.Menu.popup_menu);
menu.Show ();
};
Обработка событий меню
Когда пользователь выбирает пункт меню, событие click MenuItemClick будет поднято, и меню будет отклонено. Касание в любом месте за пределами меню просто уволит его. В любом случае при закрытии меню будет возникать его "Закрыть". Следующий код добавляет обработчики событий для MenuItemClick событий и 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 ();
};
