我已经扩展了基本活动中的操作栏菜单,并修改了基本活动中的操作栏项目。但是当我改变方向时,菜单总是空的,这就是为什么它不更新我的操作栏项目的原因。为什么它是空的?下面是我试用过的代码:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.base, menu);
mMenu = menu;
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// switch (item.getItemId()) {
if (item.getItemId() == R.id.action_refresh) {
refreshNewsData();
return true;
}
if (item.getItemId() == R.id.action_share) {
sharenewsData();
return true;
}
if (item.getItemId() == R.id.action_favorite) {
addFavorites();
return true;
}
return super.onOptionsItemSelected(item);
}我已经在基本活动中编写了这段代码。protected void showIcons(int id) {
if (mMenu != null) {
MenuItem item = mMenu.findItem(id);
item.setVisible(true);
}
}
protected void hideIcons(int id) {
if (mMenu != null) {
MenuItem item = mMenu.findItem(id);
item.setVisible(false);
}我正在使用这些方法来更新操作栏菜单项
发布于 2014-06-24 14:21:42
不能直接更新ActionBar菜单项。每当您想要更新菜单项时,调用invalidateOptionsMenu(),这将重新绘制操作栏菜单,并调用onPrepareOptionsMenu()。你必须处理好你想要在onPrepareOptionsMenu()中显示/隐藏的菜单项。
https://stackoverflow.com/questions/24379521
复制相似问题