Android在运行时添加一个菜单项

时间:2011-03-21 09:14:48

标签: android menu

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.main_menu, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle item selection
    switch (item.getItemId()) {
            case R.id.about:
            Intent i = new Intent(this, impresszum.class);
            startActivity(i);

                return true;
            case R.id.quit:
                AppUtils.ExitTheApplication();
                return true;
            default:
                return super.onOptionsItemSelected(item);
    }
}

我有这个代码。我想在运行时添加一些菜单,当我需要它时。并在需要时删除一些菜单。我怎么能这样做?

1 个答案:

答案 0 :(得分:3)

菜单项不一定与Shelly建议的部分中的活动相关,在这种情况下,您可以调用invalidateOptionsMenu()来保留菜单对象,以便在后续菜单中“刷新”菜单致电onPrepareOptionsMenu()

来自the same Android Developers site

  

在Android 2.3.x及更低版本上,系统调用onPrepareOptionsMenu()   每次用户打开选项菜单(按菜单按钮)。

     

在Android 3.0及更高版本中,选项菜单始终被视为   菜单项在操作栏中显示时打开。当一个事件   发生并且您想要执行菜单更新,您必须调用   invalidateOptionsMenu()请求系统调用   onPrepareOptionsMenu()