Android:如何找到从上下文菜单中单击的位置

Sos*_*osi 32 android android-emulator

我有一个填充数据的列表视图.我使用以下代码为listview设置了一个上下文菜单:

list.setOnCreateContextMenuListener
(
  new View.OnCreateContextMenuListener() 
  {
        public void onCreateContextMenu(ContextMenu menu, View view, ContextMenu.ContextMenuInfo menuInfo) 
        {
       AdapterContextMenuInfo mi =(AdapterContextMenuInfo) menuInfo;
       menu.add(0, 0, 0, "Delete item");                
    }
   }
);
Run Code Online (Sandbox Code Playgroud)

我有以下方法覆盖来控制选择的de contextmenu menuitem:

@Override
public boolean onContextItemSelected(MenuItem item) 
{
  switch(item.getItemId()) 
  { 
  case 0: 
    ShowAlert("hello from delete item");
    break; 
  default: 
  return super.onContextItemSelected(item); 
  } 
  return true; 
}
Run Code Online (Sandbox Code Playgroud)

在这个覆盖的方法中,我怎样才能找到被点击的列表视图的项目?

提前致谢.最好的祝福.何塞

Dim*_*rov 77

你可以使用ContextMenu.ContextMenuInfo.

像这样的东西:

@Override
public boolean onContextItemSelected(MenuItem item) {
    AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
    int index = info.position;
}
Run Code Online (Sandbox Code Playgroud)

您还可以获得View显示菜单的确切内容:

@Override
public boolean onContextItemSelected(MenuItem item) {
    AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
    int index = info.position;
    View view = info.targetView;
}
Run Code Online (Sandbox Code Playgroud)