我正尝试创建一个上下文菜单,当我在GridView中的图像上按住我的手指(长)时弹出。在imagegridview上显示上下文菜单
现在在创建GridView的我已经做了这个片段:
的OnCreate:
imageGrid.setAdapter(ImageAdapter);
哪里ImageAdapter是我独立的类,它的工作对我来说。
而且在同一个片段我有
@Override
public boolean onContextItemSelected(MenuItem item) {
if(item.getTitle()=="Action1"){
Log.d("Debug","Clicked");
}
else {
return false;
}
return true;
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v,ContextMenu.ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
menu.setHeaderTitle("Context Menu");
menu.add(0, v.getId(), 0, "Action 1");
menu.add(0, v.getId(), 0, "Action 2");
}
然后在我的适配器类我注册这样的longOnclickListener:
private class selectOnLongClickListener implements View.OnLongClickListener{
private ViewHolder mViewHolder;
private selectOnLongClickListener(ViewHolder viewHolder)
{
mViewHolder = viewHolder;
}
@Override
public boolean onLongClick(View v)
{
Log.d("Debug","OnLongClick");
return true;
}
}
监听器的工作原理,他打印了我调试输出时我把手指放在一张图像上。但上下文菜单从不显示。难道我做错了什么?
我正在使用片段,我需要做getActivity()。this.openContextMenu(v)? – user1480139
是的,就是这样,getActivity()。openContextMenu(v) –
我不能使用它,因为我的适配器类从baseAdapter扩展,所以我不能使用getActivity()。 – user1480139