10

在公共 void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo} 事件中,

我想我可以使用以下方法通过 arg View v 知道哪个控件启动 onCreateContextMenu 事件,对吗?
ImageView imageview=(ImageView)v

但是在 public boolean onContextItemSelected(MenuItem item) 中,我找不到相同的 arg,我该怎么办?谢谢!

4

2 回答 2

19

你可以ContextMenu.ContextMenuInfo这样使用:

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

您还可以获得正在显示菜单的确切视图:

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

看看这些问题:

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

识别在 ContextMenu (Android) 中选择的视图

于 2013-07-17T01:05:00.220 回答
-1

你可以用

View v2;
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
    super.onCreateContextMenu(menu, v, menuInfo);
    v2=v;
      getMenuInflater().inflate(R.menu.cnt_menu, menu);
  //  }
  }
于 2018-08-31T15:35:48.610 回答