我正嘗試創建一個上下文菜單,當我在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