如何在 xamarin 中的列表视图中使用 OnItemLongClick
本文关键字:视图 OnItemLongClick 列表 xamarin | 更新日期: 2023-09-27 18:33:39
我正在用xamarin android开发一个应用程序。在该应用程序中,我正在显示一个自定义列表。我想使用 listView_ItemLongClick(object sender, AdapterView.ItemLongClickEventArgs e)
在该弹出窗口中,我需要显示两个选项更新和删除。根据用户选择,我想做进一步的处理。
谁能给我一些我可以使用的例子?
如果你只是想在EventHandler
做一些事情,你可以做一些简单的事情,比如:
var listView = FindViewById<ListView>(Resource.Id.MyListView);
listView.ItemLongClick += listView_ItemLongClick;
private void listView_ItemLongClick(object sender, AdapterView.ItemLongClickEventArgs e)
{
// Do your stuff here
}
现在您可以对LongClicks
做出反应,您现在想要显示一个"弹出窗口"。在这种情况下,您可能需要类似Dialog
(所有 API 级别)或PopupMenu
(API 级别 11 及更高)之类的东西。
使用PopupMenu
相当简单。首先,您需要定义一个popupmenu.xml
文件,该文件需要存在于Resources/menu/
中,用于创建PopupMenu
中的项目:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/pm_update"
android:title="Update" />
<item android:id="@+id/pm_delete"
android:title="Delete" />
</menu>
接下来,您需要为ItemLongClick
事件向EventHandler
添加一段简单的代码:
var menu = new PopupMenu(this, (View)sender);
menu.Inflate(Resource.Menu.popupmenu);
menu.MenuItemClick += (s, a) =>
{
switch (a.Item.ItemId)
{
case Resource.Id.pm_update:
// update stuff
break;
case Resource.Id.pm_delete:
// delete stuff
break;
}
};
menu.Show();
如果你想要一个Dialog
,有很多关于如何制作这些的样本。