Alex Rivera | Logout

How to include a common menu item in multiple menus in Android menu xml?

Asked 2010-12-02T16:04:59.150
38

Many of menus have always one item same to all.

Is there the way to define that item as extra menu and include it to all other?

Something like this:

menu/main.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/menu_main"
          android:title="@string/text_mainmenu" />
</menu>

menu/other.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android"
      parent="@menu/main">
    <item android:id="@+id/menu_other"
          android:title="@string/text_othermenu" />
</menu>

I know, that it's possible to do it programmaticaly, but I thought xml-way is nicer.

Edit
Report

1 Answer

74

Inflating each menu and calling to super works great! Here is an example:

@Override
public boolean onCreateOptionsMenu(Menu menu) 
{
    super.onCreateOptionsMenu(menu);
    getMenuInflater().inflate(R.menu.main, menu);
    getMenuInflater().inflate(R.menu.other, menu);
    return true;
}

You can control the order if super also adds more items by calling it before/after other inflates, or not call at all it to ignore those items.

answered 2011-02-10T08:22:35.083

Your Answer