Java 从具有相同菜单的不同列表中删除项目

Java 从具有相同菜单的不同列表中删除项目,java,android,eclipse,listview,contextmenu,Java,Android,Eclipse,Listview,Contextmenu,我在一个活动中有两个列表视图,我想使用ContextMenu从其中一个列表视图中删除iTen。我想使用相同的上下文菜单,可以吗?我在看这里,但所有的答案都指向两个不同的上下文菜单。谢谢 这是我的密码: //Register both ListViews Listview1= (ListView)findViewById(R.id.PedlstItens) ; Listview1.setOnCreateContextMenuListener(this); regis

我在一个活动中有两个列表视图,我想使用ContextMenu从其中一个列表视图中删除iTen。我想使用相同的上下文菜单,可以吗?我在看这里,但所有的答案都指向两个不同的上下文菜单。谢谢

这是我的密码:

    //Register both ListViews
    Listview1= (ListView)findViewById(R.id.PedlstItens) ;
    Listview1.setOnCreateContextMenuListener(this);
    registerForContextMenu(Listview1);

    Listview2 = (ListView)findViewById(R.id.PedlstCartao) ;
    Listview2.setOnCreateContextMenuListener(this);
    registerForContextMenu(Listview2);
之后,充气菜单:

    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
    super.onCreateContextMenu(menu, v, menuInfo);
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.layout.menu_remove, menu);
}
然后上下文菜单行为。。。我不知道如何指向正确的Listview来删除该项:

public boolean onContextItemSelected(MenuItem item) {
    AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();

        ***//THIS IS WHERE I DONT KNOW WHAT TO DO***
    switch (item.getItemId()) {
        case R.id.remove_item:
            Listview1.remove(info.position);
            Listview1array.notifyDataSetChanged();
        return true;
    }
    return false;
}
找到了一个解决方案:

在“onCreateContextMenu”中,我将列表的Id存储在变量ListToRemove中:

public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
        super.onCreateContextMenu(menu, v, menuInfo);
        MenuInflater inflater = getMenuInflater();
        ListToRemove = v.getId(); //Here i store in which listview my ContextMenu was created
        inflater.inflate(R.layout.menu_remove, menu);
    }
然后,在“onContextItemSelected”中,我做了一个开关来控制行为***注意:我的ContextMenu只有一项,所以我从原始代码中删除了“getItemId()

public boolean onContextItemSelected(MenuItem item) {
    AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
    boolean retorno = false;

    switch (ListToRemove ) { 
    case R.id.ListView1:
        {
             ListView1.remove(info.position);
         ListView1Array.notifyDataSetChanged();
         retorno = true;
             break;
        }
    case R.id.ListView2:
        {
             ListView2.remove(info.position);
             ListView2Array.notifyDataSetChanged();
             retorno = true;
             break;
        }
    }
    return retorno;
}
工作很好