长按listView中的行中的特定项时获取ContextMenu

时间:2012-12-31 08:17:50

标签: android android-listview android-contextmenu

我使用基础适配器填充列表视图,此列表的每一行都有3 ImageView

我想显示ContextMenu并在长按其中一张图片时获取图片位置(不是点击列表行,而是点击图片本身),我试图给{{{ 1}}在Activity中排并获取图像,然后为listview注册此图像,但没有任何效果。

我想在行中的每个图片上调用事件contextMenu([registerForContextMenu(imgLeft)]),但我遇到了一个问题,就是我可以调用(显示 - 打开)onLongClickListener中的contextMenu(否)这里的活动)方法baseAdapter()......?或者我如何在getView ...?

中为contextMenu注册这些图片

我在这里和谷歌搜索了大量的解决方案并且什么都没有。

1 个答案:

答案 0 :(得分:1)

为每个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");
            }
    }
    });
}