我都嘗試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)會幫助你。 –