Android onCreateOptions菜单()调用超级
我正在使用选项菜单创建应用程序。我发现很少有这样的例子,但每个人都在使用不同的方法调用Android onCreateOptions菜单()调用超级,android,android-optionsmenu,Android,Android Optionsmenu,我正在使用选项菜单创建应用程序。我发现很少有这样的例子,但每个人都在使用不同的方法调用onCreateOptionMenu()中的super.onCreateOptionMenu() 不同方式列表: @Override // without super public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.myme
onCreateOptionMenu()
中的super.onCreateOptionMenu()
不同方式列表:
@Override // without super
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.mymenu, menu);
return true;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.mymenu, menu);
return true;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.mymenu, menu);
return super.onCreateOptionsMenu(menu);
}
我应该用什么?这取决于你想做什么。第一个示例将放置您的菜单,并且仅放置您的菜单。第二个,将添加第一个超级类菜单。最后一个将首先添加您的菜单。但是,请记住,菜单也有一个顺序字段,这将在渲染时考虑 假设您正在扩展一个已经有菜单的活动,但您不希望该菜单出现,而是希望另一个菜单出现。在这种情况下,您将使用第一种方法
另一个示例:您正在扩展具有菜单的活动,并且希望添加另一个菜单。在这种情况下,您可以使用第二种或最后一种方法。onCreateOptions菜单()的源代码如下所示:
public boolean onCreateOptionsMenu(Menu menu) {
if (mParent != null) {
return mParent.onCreateOptionsMenu(menu);
}
return true;
}
其中,mParent
是当前活动的父活动。如果您的活动扩展了android.app.Activity,那么您可以在最后返回true
,而不用担心调用super
,因为默认实现将尝试显示基于父活动的菜单,这可能是您不想要的