开始时更新菜单

时间:2013-05-12 07:07:42

标签: java android menu

我有一个更新菜单的功能。问题是:应用程序启动时应该调用此函数,但是在onCreate()中它是不可能的,因为此时菜单没有创建,所以我得到一个例外。 还有其他可能性在开始时几乎调用这个MenuUpdate吗?

3 个答案:

答案 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();
}