@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);
}
}
我有这个代码。我想在运行时添加一些菜单,当我需要它时。并在需要时删除一些菜单。我怎么能这样做?
答案 0 :(得分:3)
菜单项不一定与Shelly建议的部分中的活动相关,在这种情况下,您可以调用invalidateOptionsMenu()
来保留菜单对象,以便在后续菜单中“刷新”菜单致电onPrepareOptionsMenu()
。
来自the same Android Developers site:
在Android 2.3.x及更低版本上,系统调用onPrepareOptionsMenu() 每次用户打开选项菜单(按菜单按钮)。
在Android 3.0及更高版本中,选项菜单始终被视为 菜单项在操作栏中显示时打开。当一个事件 发生并且您想要执行菜单更新,您必须调用 invalidateOptionsMenu()请求系统调用 onPrepareOptionsMenu()