【问题标题】:Android: Multiple Option Menus in one ActivityAndroid:一个活动中的多个选项菜单
【发布时间】:2011-10-24 01:59:39
【问题描述】:
我有一个包含ViewFlipper 的Activity,并希望为ViewFlipper 中的每个视图显示不同的选项菜单。也就是说,按下菜单按钮时显示的菜单类型将取决于当前视图的类型。但是,onCreateOptionsMenu() 仅被调用一次(第一次显示选项菜单时),因此无法在此处实现创建不同的菜单。我该如何解决这个问题?
任何建议表示赞赏。
【问题讨论】:
标签:
android
android-activity
menu
option
【解决方案1】:
首先阅读onPrepareOptionsMenu(Menu menu)
每次用户在您的一项活动中按下其 Android 设备上的 Menu 时,都会调用 onPrepareOptionsMenu 方法。第一次显示菜单时(即只显示一次),调用onCreateOptionsMenu 方法。
基本上,onPrepareOptionsMenu 方法是您应该进行任何更改的地方,例如启用/禁用某些菜单项,或根据情况更改菜单项文本。
这样做(不要使用onCreateOptionsMenu(Menu menu))
//Dynamically create context Menu
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
menu.clear(); //Clear view of previous menu
MenuInflater inflater = getMenuInflater();
if(condition_true)
inflater.inflate(R.menu.menu_one, menu);
else
inflater.inflate(R.menu.menu_two, menu);
return super.onPrepareOptionsMenu(menu);
}