许多菜单总是有一个项目相同。
有没有办法将该项目定义为额外菜单并将其包含在所有其他菜单中?
这样的事情:
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/menu_main"
android:title="@string/text_mainmenu" />
</menu>
<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>
我知道,有可能以编程方式进行,但我认为xml-way更好。
答案 0 :(得分:50)
给每个菜单充气并打电话给超级作品很棒! 这是一个例子:
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
super.onCreateOptionsMenu(menu);
getMenuInflater().inflate(R.menu.main, menu);
getMenuInflater().inflate(R.menu.other, menu);
return true;
}
你可以控制订单,如果超级也通过在其他膨胀之前/之后调用它来添加更多项目,或者根本不调用它来忽略这些项目。
答案 1 :(得分:11)
AFAIK,<include>
仅适用于布局XML,而不适用于菜单XML,但您当然可以尝试一下。缺乏这一点,程序化选项(膨胀菜单XML文件)是我所知道的唯一选择。