I am trying to add an item to the options menu from a group of fragments.
I have created a new MenuFragment
class and extended this for the fragments I wish to include the menu item in. Here is the code:
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);
}
}
For some reason the onCreateOptionsMenu
appears not to run.
Best Answer
Call the super method:
Java:
Kotlin:
Put log statements in the code to see if the method is not being called or if the menu is not being amended by your code.
Also ensure you are calling
setHasOptionsMenu(boolean)
inonCreate(Bundle)
to notify the fragment that it should participate in options menu handling.