我的Activity
包含ViewFlipper
,并希望为ViewFlipper
中的每个视图显示不同的选项菜单。也就是说,按下菜单按钮时显示的菜单类型取决于当前视图的类型。但是,onCreateOptionsMenu()
仅被调用一次(第一次显示选项菜单时),因此无法在此处创建不同的菜单。我怎么能解决这个问题?
任何建议表示赞赏。
答案 0 :(得分:28)
首先阅读onPrepareOptionsMenu(Menu menu)
每次用户在您的某个活动中按下Android设备上的菜单时,都会调用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);
}