は、私は両方の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)が役立つと思います。 –