Да, это возможно.По сути, вы просто надуете несколько XML-файлов в одно и то же меню параметров.Элементы добавляются в меню в порядке инфляции.
Просто переписайте onCreateOptionsMenu(Menu menu)
для вашего TabActivity
, надувая xml-файл, содержащий основные параметры.Затем перезаписать его для каждого из ваших внутренних действий вкладки, раздувая специфичные для вкладки опции.Просто напишите их, как вы обычно это делаете:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.options, menu);
return super.onCreateOptionsMenu(menu);
}
Меню «принадлежит» текущему активному действию внутренней вкладки, но для его заполнения onCreateOptionsMenu
автоматически вызывается и для родительских действий (на super
).
Однако, как ни странно, onMenuItemSelected(int featureId, MenuItem item)
не делает то же самое.Чтобы обработать выбор элемента, действия внутренней вкладки все равно должны явно вызывать соответствующий метод родительской операции (после того, как вы определите, что выбранный параметр не зависит от вкладки):
return super.onMenuItemSelected(featureId, item)
|| getParent().onMenuItemSelected(featureId, item);