1. ホーム
  2. アンドロイド

[解決済み】アクションバーのメニュー項目を非表示にするには?

2022-04-17 10:03:47

質問

メニューのあるアクションバーがあります。そのメニュー項目を表示/非表示にするにはどうしたらよいですか?

こんな感じでやってます。

MenuItem item = (MenuItem) findViewById(R.id.addAction);
item.setVisible(false);
this.invalidateOptionsMenu();

解決方法は?

を取得します。 MenuItem そのような項目を指して setVisible を呼び出して可視性を調整した後 invalidateOptionsMenu() を実行すると、ActionBarのメニューがそれに応じて調整されます。

更新してください。 A MenuItem は、レイアウトの一部である通常のビューではありません。特別なものであり、全く異なるものです。あなたのコードが返す null に対して item で、それがクラッシュの原因になっています。代わりに必要なのは

MenuItem item = menu.findItem(R.id.addAction);

以下は、呼び出す順番です。 ファーストコール invalidateOptionsMenu() で、その中の onCreateOptionsMenu(Menu) を呼び出して)MenuItemへの参照を取得します。 menu.findItem() を呼び出す。 setVisible() その上で