Меню Упорядочение различий из-за иерархии фрагментов и активности. (onCreateOptionsMenu)

Задний план

Для Android 3.0 у меня есть HostActivity который является суперклассом NotebooksActivity и NoteActivity . NotebooksActivity включает фрагмент, NotebooksFragment .

В HostActivity я включаю меню, которое я хочу HostActivity в самом крайнем конце меню опций в ActionBar, то есть все элементы меню в подклассах HostActivity должны появиться слева от пунктов меню, добавленных в HostActivity .

Инфляция меню в HostActivity :

 @Override public boolean onCreateOptionsMenu(Menu menu) { final MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.host_menu, menu); return super.onCreateOptionsMenu(menu); } 

Проблема

Когда я добавляю пункты меню в NoteActivity , я достигаю желаемого порядка, как ожидалось:

 @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.notebook_menu, menu); return super.onCreateOptionsMenu(menu); } 

Тем не менее, когда я добавляю элементы меню в NotebooksFragment , из-за того, как работают фрагменты, onCreateOptionsMenu вызывается после того же метода в HostActivity , в результате чего HostActivity меню HostActivity появляются перед NotebooksFragment .

 @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { inflater.inflate(R.menu.notebooks_menu, menu); SearchView sv = new SearchView(getActivity()); sv.setOnQueryTextListener(this); menu.findItem(R.id.search_notebooks).setActionView(sv); super.onCreateOptionsMenu(menu, inflater); } 

Как я могу достичь желаемого заказа меню?

Solutions Collecting From Web of "Меню Упорядочение различий из-за иерархии фрагментов и активности. (onCreateOptionsMenu)"