I am trying to inflate a menu in a class that inherits the Fragment
class.
Here is my OnCreateOptionsMenu()
method -
@Override
public bo
Use this code:
@Override
public boolean OnCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.forecastfragment, menu) ;
final MenuItem item = menu.findItem(R.id.forecastID);
}
where forecastID is the ID of the item in the menu forcastfragment.xml.
Also add setHasOptionsMenu(true);
in your OnCreateView()
so that the fragment will call the method.
As a side, it's standard practice to include the word 'menu' in your menu file names such as 'forecastfragment_menu.xml'. It avoids confusion.
The signature of your onCreateOptionsMenu
doesn't look right. Take a look at the docs here
Take a look this code
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);//Make sure you have this line of code.
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
// TODO Add your menu entries here
super.onCreateOptionsMenu(menu, inflater);
}
In your fragment class add:
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.[IDMENU], menu) ;
}
Where [IDMENU] is the XML name of your menu.
Next you need to add inside onCreate or onCreateView method this:
setHasOptionsMenu(true);
overriding
a super method.inflate
.You must use it in this way:
@Override
public boolean OnCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.forecastfragment, menu);
return true;
}