如何在Android菜单xml的多个菜单中包含一个常用菜单项?

时间:2010-12-02 16:04:59

标签: android menu menuitem

许多菜单总是有一个项目相同。

有没有办法将该项目定义为额外菜单并将其包含在所有其他菜单中?

这样的事情:

菜单/ main.xml中

<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/menu_main"
          android:title="@string/text_mainmenu" />
</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>

我知道,有可能以编程方式进行,但我认为xml-way更好。

2 个答案:

答案 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文件)是我所知道的唯一选择。