3

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

谁能给我一些我可以使用的例子?

4

1 回答 1

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
}

现在您可以对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>

EventHandler接下来,您需要为事件添加一段简单的代码ItemLongClick

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相反的样本,那里有很多关于如何制作这些的样本。

于 2013-10-02T13:44:59.160 回答