This, unfortunately, is not possible in simple XML, but there is a good way without using manual methods Menu.add*: here is how you can get an instance Menuto include / bloat another file in:
inflater.inflate(R.menu.player, menu);
MenuItem fp_menu = menu.findItem(R.id.teameditor_assignfieldingposition);
inflater.inflate(R.menu.positions, fp_menu.getSubMenu());
, inflater:
Activity.onCreateContextMenu(menu, v, menuInfo): getMenuInflater()Fragment.onCreateContextMenu(menu, v, menuInfo): getActivity().getMenuInflater()Activity.onCreateOptionsMenu(menu): getMenuInflater()Fragment.onCreateOptionsMenu(menu, inflater): inflater
/player.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/teameditor_remove"
android:title="Remove Player from Team"
/>
<item android:id="@+id/teameditor_assignbattingposition"
android:title="Assign Batting Position"
/>
<item android:id="@+id/teameditor_assignfieldingposition"
android:title="Assign Feilding Position">
<menu></menu>
</item>
</menu>
<menu /> , getSubMenu() null!
/positions.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/fp_pitcher"
android:title="Pitcher"
/>
<item android:id="@+id/fp_catcher"
android:title="Catcher"
/>
</menu>
onContextItemSelected
, onContextItemSelected [...]
, , onContextItemSelected, , ... . getSubMenu(), , . , .
positions.xml teameditor_assignbattingposition, onOptionsItemSelected/onContextItemSelected.
- findItem
this.fp_menu = menu.findItem(R.id.teameditor_assignfieldingposition);
inflater.inflate(R.menu.positions, fp_menu.getSubMenu());
this.bp_menu = menu.findItem(R.id.teameditor_assignbattingposition);
inflater.inflate(R.menu.positions, bp_menu.getSubMenu());
on*ItemSelected:
switch (item.getItemId()) {
case R.id.fp_pitcher:
if (item == fp_menu.findItem(R.id.fp_pitcher)) {
} else if (item == bp_menu.findItem(R.id.fp_picther)) {
} else {
throw new ImLostInMenusException();
}
return true;
}
return super.on*ItemSelected();