android menu动态更新问题

@Override
public boolean onPrepareOptionsMenu(Menu menu) {
    Toast.makeText(getApplicationContext(), "menu action", Toast.LENGTH_SHORT).show();

int mode = getIntent().getIntExtra("request", EDIT);
switch(mode){
case ADD:
    getMenuInflater().inflate(R.menu.add, menu);
    break;
case EDIT:
    getMenuInflater().inflate(R.menu.edit, menu);
    break;
}

if(ChangeModeState == true){
    menu.clear();
    getMenuInflater().inflate(R.menu.add, menu);
}
else{

}

return super.onPrepareOptionsMenu(menu);

}

使用了Activity的onPrepareOptionsMenu方法,想要实现在不同的上下文环境下修改action bar上的菜单项。文档中说该方法在每一次menu要被显示之前都要被调用;在很多论坛里讲这个方法每一次使用menu按键都会被调用。

实际使用发现点击action bar中的menu item并不会回调onPrepareOptionsMenu方法,无法实现更新。请问大家如何才能实现动态更新action bar中的menu项?

阅读 9.9k
1 个回答

在你需要更新menu的时候调用#invalidateOptionsMenu()

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题