我有一个更新菜单的功能。问题是:这个函数应该在应用程序启动时调用,但是onCreate()
因为此时没有创建菜单所以我得到了一个异常。几乎在开始时还有其他可能调用此 MenuUpdate 吗?
问问题
314 次
3 回答
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;
}
于 2013-05-12T07:14:46.167 回答
0
If your function needs to update menu, call
supportInvalidateOptionsMenu();
in your activity class to refresh immediately.
于 2013-05-12T07:27:15.767 回答
0
Android Activity 有一种方法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();
}
于 2013-05-13T18:37:23.000 回答