如何在xamarin的列表视图中使用OnItemLongClick

Pra*_*wad 3 c# android xamarin.android xamarin

我正在开发一个xamarin android应用程序.在该应用程序中,我正在显示自定义列表.我想listView_ItemLongClick(object sender, AdapterView.ItemLongClickEventArgs e)在弹出窗口中显示弹出窗口我需要显示两个选项更新删除.并根据用户选择我想进一步处理.

任何人都可以给我一些我可以使用的例子吗?

Che*_*ron 5

如果你只想做一些事情,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
}
Run Code Online (Sandbox Code Playgroud)

现在你可以对你做出反应,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>
Run Code Online (Sandbox Code Playgroud)

接下来,你需要一段简单的代码添加到您EventHandlerItemLongClick事件:

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();
Run Code Online (Sandbox Code Playgroud)

如果你想要一个Dialog,那么有关于如何制作那些样品的负荷.