diadia

興味があることをやってみる。自分のメモを残しておきます。

フラグメントでオプションメニューを実装する

参考

FragmentでActionBarを指定したい! - Qiita

実装の概要と注意点

編集するファイルは、フラグメントが紐付けられるアクティビティ.ktファイルとフラグメント.ktファイルである。 両ファイルともにonCreateOptionsMenuをオーバーライドする。またフラグメント.ktではsetHasOptionsMenu(true)を記述する必要がある。

ちなみにアクティビティ.ktにオーバーライドしたonCreateOptionsMenuを実装しないとエラーが生じる。

その記事は以下である。

エラー対処:java.lang.IllegalStateException: menu.findItem(R.id.action_settings) must not be null - diadia

実装手順

アクティビティ.ktの実装

  1. onCreateOptionsMenuのオーバーライドで、表示するオプションを決定する

フラグメント.ktの実装

  1. onCreateViewの中のsetHasOptionsMenu(true)を選択
  2. onCreateOptionsMenuのオーバーライドで、表示するオプションを決定する
  3. onOptionsItemSelectedでメニューの処理を設定

setHasOptionsMenu(true)に関する資料(ドキュメント)

Fragment  |  Android Developers