我有一个ListFragment,在其中使用registerForContextMenu()注册上下文菜单,并且覆盖了onCreateContextMenu().
问题是,当我长按任何项目时,永远不会调用onCreateContextMenu().
这是一些代码:
public class List_F extends ListFragment {
@Override
public void onActivityCreated(Bundle arg0) {
super.onActivityCreated(arg0);
registerForContextMenu(getListView());
setListAdapter(...);
setListShown(false);
// launch cursor loader
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenu.ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
MenuInflater inflater = getActivity().getMenuInflater();
inflater.inflate(R.menu.menu, menu);
}
@Override
public boolean onContextItemSelected(MenuItem item) {
AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
int i = item.getItemId();
if (i == R.id.menu_item_delete) {
delete(info.id);
return true;
} else {
return super.onContextItemSelected(item);
}
}
}
知道为什么吗?
我也试过
getListView().setOnItemLongClickListener()
而且它甚至没有被调用.
任何想法?