Ответ 1
AFAIK, <include>
работает только для макета XML, а не для XML-меню, хотя вы, безусловно, можете попробовать. Отсутствие этого, программный вариант (раздувание обоих файлов XML файлов) является единственным вариантом, о котором я знаю.
Во многих меню всегда есть один элемент для всех.
Есть ли способ определить этот элемент как дополнительное меню и включить его ко всем другим?
Что-то вроде этого:
<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-путь более приятный.
AFAIK, <include>
работает только для макета XML, а не для XML-меню, хотя вы, безусловно, можете попробовать. Отсутствие этого, программный вариант (раздувание обоих файлов XML файлов) является единственным вариантом, о котором я знаю.
Раздувание каждого меню и вызов супер супер отлично! Вот пример:
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
super.onCreateOptionsMenu(menu);
getMenuInflater().inflate(R.menu.main, menu);
getMenuInflater().inflate(R.menu.other, menu);
return true;
}
Вы можете управлять порядком, если супер также добавляет больше элементов, вызывая его до/после другого раздувания или не звонит вообще, чтобы игнорировать эти элементы.