我使用一个基本适配器来填充一个列表视图,这个列表的每一行都有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");
}
}
});
}