How to include a common menu item in multiple menus in Android menu xml?
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:开发者_Go百科title="@string/text_othermenu" />
</menu>
I know, that it's possible to do it programmaticaly, but I thought xml-way is nicer.
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.
AFAIK, <include>
only works for layout XML, not menu XML, though you can certainly give it a try. Lacking that, the programmatic option (inflating both menu XML files) is the only option I am aware of.
精彩评论