@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项?
在你需要更新menu的时候调用#
invalidateOptionsMenu()