我的片段中有一个列表视图。在longclick上该列表视图中的项目时,我有一个上下文菜单。菜单中的最后一个选项是关闭它(关闭菜单)。我就这样做了:
public boolean onContextItemSelected(MenuItem item) {
if (item.getGroupId() == 0) {
switch(item.getItemId()) {
case 1...
case 2...
case Constants.Context_Menu_Items.CONTEXT_MENU_CLOSE:
getActivity().closeContextMenu();
break;
}
}
return super.onContextItemSelected(item);
}
我检查了我的三星Galaxy S3上的应用程序 - 它运行得很好。现在我将APK发送给朋友,检查他的Nexus 3上的应用程序,这个选项对他不起作用,上下文菜单没有关闭。
可能是什么原因以及如何解决?
答案 0 :(得分:0)
https://developer.android.com/reference/android/app/Activity.html#onContextItemSelected(android.view.MenuItem)中的文档说“返回false以允许正常的上下文菜单处理继续进行,在此处使用它是真的”。
因此,为了确保代码有效,我会写
case Constants.Context_Menu_Items.CONTEXT_MENU_CLOSE:
return true;
而不是
case Constants.Context_Menu_Items.CONTEXT_MENU_CLOSE:
break;
因此避免调用super.onContextItemSelected(item)