我都尝试onCreateOptionsMenu(菜单菜单)和onPrepareOptionsMenu(菜单菜单)方法,但是当应用程序在后台打开我不能改变图标visibility.As更改菜单图标我想我需要在内调用这些方法onResume()当应用程序来自于背景(在的onResume()方法)
当应用程序第一次启动时它按预期工作。
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it present.
getMenuInflater().inflate(R.menu.example_menu, menu);
// show manu items if not ofline mode
if (Utils.checkNetworkStatus(ExampleActivity.this)) {
menu.findItem(R.id.edit).setVisible(true);
menu.findItem(R.id.delete).setVisible(true);
}else {
menu.findItem(R.id.edit).setVisible(false);
menu.findItem(R.id.delete).setVisible(false);
}
return true;
}
@Override
public boolean onPrepareOptionsMenu(Menu menu){
if (Utils.checkNetworkStatus(ExampleActivity.this)) {
menu.findItem(R.id.edit).setVisible(true);
menu.findItem(R.id.delete).setVisible(true);
}else {
menu.findItem(R.id.edit).setVisible(false);
menu.findItem(R.id.delete).setVisible(false);
}
return true;
}
使用'invalidateoptionsmenu()'如果你正在改变这些挂钩外的菜单采取行动 – nomag
,您可能需要调用'invalidateOptionsMenu()'。你试过了吗? – Jon
我认为[此链接](https://developer.android.com/guide/topics/ui/menus.html#ChangingTheMenu)会帮助你。 –