我有一个更新菜单的功能。问题是:应用程序启动时应该调用此函数,但是在onCreate()
中它是不可能的,因为此时菜单没有创建,所以我得到一个例外。
还有其他可能性在开始时几乎调用这个MenuUpdate吗?
答案 0 :(得分:2)
您可以使用函数onCreateOptionsMenu
,这是一个在创建过程中隐藏某些菜单项的示例:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main_activity, (android.view.Menu) menu);
this.menu = menu;
showOption(R.id.menu_edit);
hideOption(R.id.menu_check);
hideOption(R.id.menu_cancel);
return true;
}
答案 1 :(得分:0)
如果您的功能需要更新菜单,请致电
supportInvalidateOptionsMenu();
在您的活动类中立即刷新。
答案 2 :(得分:0)
Android活动有一个方法onPrepareOptionsMenu(Menu menu)
,您可以在其中访问菜单项。要启动此功能的调用,您必须致电invalidateOptionsMenu()
。因此,活动的onCreate(...)
方法中更新菜单的代码如下所示:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
updateMenu();
}
@Override
public void onPrepareOptionsMenu(Menu menu) {
// Do update staff with menu instance
}
private void updateMenu() {
invalidateOptionsMenu();
}