【发布时间】:2014-06-06 09:04:59
【问题描述】:
我有一个 ActionBarActivity(来自 v7 支持库),它加载了一个 fragment(来自 v4 支持库)。我在片段中实现了onCreateContextMenu(),如下所示:
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.context_menu, menu);
}
为了了解是否真的需要调用 super 方法,我仔细研究了 android 源代码:
-
Fragment,只有一行代码:
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { getActivity().onCreateContextMenu(menu, v, menuInfo); } ActionBarActivity,没有
onCreateContextMenu()。由于
ActionBarActivity是FragmentActivity的子类,所以我查看了here,它也没有onCreateContextMenu()。-
由于
FragmentActivity是Activity的子类,我查看了here。它的方法是空的:public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { }
我的结论是调用 super 方法没有意义。然而,official documentation 确实调用了 super。所以我的结论错了吗?如果有,为什么?
【问题讨论】:
标签: android android-contextmenu