Android上下文菜单和列表视图删除



我正试图通过上下文菜单删除列表视图中的一个项目。我有上下文菜单工作,我可以很容易地将新项目插入列表视图,但我不能删除它们。我有两个选项编辑和删除。

    public boolean onContextItemSelected (MenuItem item)
{
    super.onContextItemSelected(item);
    if(item.getTitle() == "Edit")
    {
        Toast.makeText(this, "Edit", Toast.LENGTH_LONG).show();
    }
    if(item.getTitle() == "Delete")
    {
        Toast.makeText(this, "Delete", Toast.LENGTH_LONG).show();
        myActivities.remove(item.getGroupId());
        populateListView();
    }
    return true;
}

由于某种原因,被删除的项目总是第一个!myActivities是我的动态数组,我在populateListView中所做的就是填充它。我知道populateList View是有效的,因为如果我向myActivities添加一个项目,然后使用该函数,就会添加新项目。删除操作无效!

注意:我也试过

    myActivities.remove(item.getItemId());

让我告诉您从Listview中删除项的一般方法。

您有一个数据列表,将其传递给适配器,并通过Listview中的适配器显示给用户。

因此,当您想要删除特定项目时,首先获取该项目的位置,然后从数据列表中删除它。由于底层数据已经更改,在适配器上调用notifyDataSetChanged(),这将使Listview刷新子视图。

尝试以下操作:

    if((item.getTitle()).equals("Delete")) // You are comparing Strings, don't use ==
    {
        Toast.makeText(this, "Delete", Toast.LENGTH_LONG).show();
        removeItemFromList(itemPosition);             
    }
    // method to remove list item
    protected void removeItemFromList(int deletePosition) {
        your_datalist.remove(deletePosition);
        adapter.notifyDataSetChanged();                    
    }

希望能有所帮助。

相关内容

  • 没有找到相关文章

最新更新