Как включить общий пункт меню в несколько меню в меню Android xml?

Во многих меню всегда есть один элемент для всех.

Есть ли способ определить этот элемент как дополнительное меню и включить его ко всем другим?

Что-то вроде этого:

меню /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-путь более приятный.

Ответ 1

AFAIK, <include> работает только для макета XML, а не для XML-меню, хотя вы, безусловно, можете попробовать. Отсутствие этого, программный вариант (раздувание обоих файлов XML файлов) является единственным вариантом, о котором я знаю.

Ответ 2

Раздувание каждого меню и вызов супер супер отлично! Вот пример:

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

Вы можете управлять порядком, если супер также добавляет больше элементов, вызывая его до/после другого раздувания или не звонит вообще, чтобы игнорировать эти элементы.