By Alvin Alexander. Last updated: March 14, 2018
Here’s a quick example of how to access an Android MenuItem in a Java Activity or Fragment class (i.e., in your Java code).
Given a menu named res/menu/menu_landing_page.xml that’s defined in XML like this:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:myapp="http://schemas.android.com/apk/res-auto">
<item android:id="@+id/menuItemPinQuote"
android:icon="@drawable/ic_action_place"
android:title="@string/menu_landing_page_pin"
myapp:showAsAction="ifRoom|withText" />
</menu>
you can access the MenuItem with the id menuItemPinQuote like this in your Android/Java code:
public void onCreateOptionsMenu(Menu menu, MenuInflater menuInflater) {
menuInflater.inflate(R.menu.menu_landing_page, menu);
super.onCreateOptionsMenu(menu, menuInflater);
MenuItem pinMenuItem = menu.findItem(R.id.menuItemPinQuote);
...
...
...
}
Once you have a reference to the MenuItem in your Java code, you can do whatever you need to do with it. For instance, I wanted to make my menu item visible or invisible depending on a certain state, which I can now do like this:
pinMenuItem.setVisible(false);
In my fast Android browser app I update the menu item text like this:
homePageMenuItem.setTitle(HOME_MENU_ITEM_SET_HOME_PAGE);
So, in summary, if you needed to see how to access an Android MenuItem from your Java Activity or Fragment code, I hope this is helpful.

