フラグメントのグループからオプション メニューに項目を追加しようとしています。
新しいクラスを作成しMenuFragment
、メニュー項目を含めたいフラグメント用にこれを拡張しました。コードは次のとおりです。
ジャワ:
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);
}
}
コトリン:
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
実行されないようです。
ベストアンサー1
スーパーメソッドを呼び出します。
ジャワ:
@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);
}
コトリン:
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)