Android 在imagegridview上显示关联菜单
我试图创建一个上下文菜单,当我在gridview中将手指(长)放在图像上时,它会弹出 现在在创建gridview的片段中,我做了以下操作: 一旦创建:Android 在imagegridview上显示关联菜单,android,contextmenu,Android,Contextmenu,我试图创建一个上下文菜单,当我在gridview中将手指(长)放在图像上时,它会弹出 现在在创建gridview的片段中,我做了以下操作: 一旦创建: imageGrid.setAdapter(ImageAdapter); 其中ImageAdapter是我的独立类,它为我完成工作 也在我得到的相同片段中 @Override public boolean onContextItemSelected(MenuItem item) { if(item.getTitle()=
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;
}
}
监听器工作时,当我将手指长按在图像上时,他会打印调试输出。但上下文菜单从未显示。我做错什么了吗?在你的活动中,你试着称之为这一点吗
this.openContextMenu(...);
@Override
public boolean onLongClick(View v)
{
Log.d("Debug","OnLongClick");
YourActivity.this.openContextMenu(v);
return true;
}
尝试使用
grid.setOnItemLongClickListener(listener)
在OnCreate()中为ContextMenu注册GridView
像这样
registerForContextMenu(imageGrid);
那就这样打电话吧
编辑:
@Override
public boolean onLongClick(View v)
{
Log.d("Debug", "OnLongClick");
v.showContextMenu();
return true;
}
这是修改后的侦听器
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");
v.showContextMenu();
return true;
}
}
v.showContextMenu()就可以了。我在处理片段,我需要做getActivity()吗。这个.openContextMenu(v)?是的,就是这样,getActivity()。openContextMenu(v)我不能使用它,因为我的适配器类是从baseAdapter扩展的,所以我不能使用getActivity()。谢谢,但无法解析OnItemLongClickListener,因为我正在从片段进行扩展。请尝试使用
v.showContextMenu()
insideonLongClick()
谢谢,这就可以了。