メニュー項目のあるアクション バーがあります。そのメニュー項目を非表示/表示するにはどうすればよいですか?
私がやろうとしているのは次のことです:
MenuItem item = (MenuItem) findViewById(R.id.addAction);
item.setVisible(false);
this.invalidateOptionsMenu();
ベストアンサー1
MenuItem
そのような項目へのポインタを取得し、setVisible
それを呼び出してその可視性を調整し、invalidateOptionsMenu()
アクティビティを呼び出して、ActionBar メニューがそれに応じて調整されるようにします。
更新:はMenuItem
レイアウトの一部である通常のビューではありません。特別なものであり、まったく異なります。コードは を返しnull
、item
それがクラッシュの原因です。代わりに必要なのは、次の操作です。
MenuItem item = menu.findItem(R.id.addAction);
呼び出す順序は次のとおりです。最初に を呼び出しinvalidateOptionsMenu()
、次に をonCreateOptionsMenu(Menu)
呼び出して MenuItem への参照を取得しmenu.findItem()
、setVisible()
それを呼び出します。