获取上下文菜单时,长按在行的特定项目在listView



我使用一个基本适配器来填充一个列表视图,这个列表的每一行都有3个ImageView .

我想显示一个ContextMenu并在长按其中一个图像时获得图像位置(不是通过单击列表行,而是单击图像本身),我试图在活动中膨胀listview行并获得图像,然后为contextMenu([registerForContextMenu(imgLeft)])注册此图像,但没有任何作用。

我想在行中的每个图像上调用事件onLongClickListener,但我遇到了一个问题,那就是我如何在baseAdapter中调用(show-open) contextMenu(这里没有活动)方法getView()…?或者我如何在baseAdapter中注册contextMenu的这些图像…?

我在这里和谷歌上搜索了很多解决方案,但一无所获。

为每个ImageView注册ContextMenu可能有效。这样的:

@Override
public View getView(int arg0, View arg1, ViewGroup arg2) {
    if (arg1 == null) {
        LayoutInflater vi = (LayoutInflater) cmx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        arg1 = vi.inflate(R.layout.services_item, null);
    }
    ImageView serviceThumb = (ImageView) arg1.findViewById(R.id.thumbIView);
    registerForContextMenu(serviceThumb);
    serviceThumb.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {
        @Override
        public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {
            AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo)menuInfo;
            menu.setHeaderTitle("Test");
            for (int i = 0; i< 5; i++) {
                menu.add(Menu.NONE, i, i, i + " - Test");
            }
    }
    });
}

相关内容

  • 没有找到相关文章

最新更新