首页 文章

如何在OnContextItemSelected事件中获取View?

提问于
浏览
8

在public void onCreateContextMenu(ContextMenu菜单,View v,ContextMenuInfo menuInfo}事件中,

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

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

2 回答

  • 16

    您可以像这样使用 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: How to find the position clicked from the context menu

    Identifying the view selected in a ContextMenu (Android)

  • 0

    你可以用

    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);
      //  }
      }
    

相关问题