Search code examples
androidmenuitem

How to get an MenuItem by id


I have my menuItem on my res/menu/student_marks.xml file:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context=".StudentMarks" >
    <item android:id="@+id/action_selected_year"
        android:title="@string/action_selected_year"
        android:showAsAction="withText|ifRoom"
        style="@style/AppTheme" />
</menu>

Now i need for this item to set a title.in a specific part of my app.

I can work with a specific item in this method:

onOptionsItemSelected(MenuItem item)

the problem is that i need the item 'action_selected_year' without of this method but in another part of my program.
I don't have idea how to get it.


Solution

  • Menu optionsMenu;
    
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
           getMenuInflater().inflate(R.menu.main, menu);
           //  store the menu to var when creating options menu
           optionsMenu = menu;
        }
    

    example: change icon on first menuItem (optionsMenu should be != null)

    optionsMenu.getItem(0).setIcon(getResources()
        .getDrawable(R.drawable.ic_action_green));