[解決済み] AndroidでFragmentにオプションメニューを追加する方法
2022-03-22 05:16:13
質問
フラグメントのグループからオプションメニューに項目を追加しようとしています。
私は、新しい
MenuFragment
クラスを作成し、メニュー項目を含めたいフラグメント用にこれを拡張しました。以下はそのコードです。
Javaです。
public class MenuFragment extends Fragment {
MenuItem fav;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
}
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
fav = menu.add("add");
fav.setIcon(R.drawable.btn_star_big_off);
}
}
Kotlinです。
class MenuFragment : Fragment {
lateinit var fav: MenuItem
override fun onCreate(savedInstanceState: Bundle) {
super.onCreate(savedInstanceState)
setHasOptionsMenu(true)
}
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
fav = menu.add("add");
fav.setIcon(R.drawable.btn_star_big_off);
}
}
なぜか
onCreateOptionsMenu
が実行されないようです。
解決方法を教えてください。
スーパーメソッドを呼び出す。
Javaで
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
// TODO Add your menu entries here
super.onCreateOptionsMenu(menu, inflater);
}
Kotlinです。
override fun void onCreate(savedInstanceState: Bundle) {
super.onCreate(savedInstanceState)
setHasOptionsMenu(true)
}
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
// TODO Add your menu entries here
super.onCreateOptionsMenu(menu, inflater)
}
コードにログステートメントを入れて、メソッドが呼び出されていないか、メニューがあなたのコードによって修正されていないかどうかを確認します。
を呼び出しているかどうかも確認します。
setHasOptionsMenu(boolean)
で
onCreate(Bundle)
を使用して、フラグメントがオプションメニューの処理に参加することを通知します。
関連
-
adb devices OffLine Solution(オフラインソリューション
-
を作ってください。*** makeするルールがない エラーの原因、分析、解決策
-
エラーが発生しました。ArrayAdapter は、リソース ID が TextView である必要があります。
-
Android開発で「Attempt to invoke virtual method 'XXX()' on null object reference」というヌルポインター例外に遭遇する。
-
Android TextViewにandroid:ellipsize=endのバグがある。
-
[解決済み] Androidのソフトキーボードをプログラムで閉じる/隠すにはどうすればよいですか?
-
[解決済み] Androidでアクティビティ起動時にEditTextにフォーカスが当たらないようにする方法
-
[解決済み] Androidの「コンテキスト」とは何ですか?
-
[解決済み] 新しいAndroid Fragmentをインスタンス化するためのベストプラクティス
-
[解決済み】Android UserManager.isUserAGoat()の正しい使用例?)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
AAPT2エラーについて:詳しくはログをご確認ください。
-
NetworkOnMainThreadException
-
GIF、Lottie、SVGA
-
android:EMSのプロパティ
-
指定された子にはすでに親がいます。まず、その子の親に対して removeView() をコールする必要があります。
-
GoogleMapと連携し、位置情報の取得が可能
-
エラータイプ 3 タイプエラー, Error: アクティビティクラス{}が存在しません。アクティビティ起動時のエラー 解決方法
-
Androidカスタムドロップダウンリストボックスコントロール
-
アンドロイドシェイプ、グラデーション、角丸、ボーダーラインの設定
-
アンドロイドにおけるトークンの利用