Menü Bestellunterschiede aufgrund von Fragment- und Aktivitätshierarchie. (OnCreateOptionsMenu)

Hintergrund

Entwickeln für Android 3.0, habe ich eine HostActivity , die die Superklasse von NotebooksActivity und NoteActivity . NotebooksActivity beinhaltet ein Fragment, NotebooksFragment .

In HostActivity ich ein Menü, das ich am rechten Ende des Optionsmenüs in der ActionBar erscheinen möchte, dh alle Menüpunkte in Unterklassen von HostActivity sollten links neben den in HostActivity hinzugefügten HostActivity .

HostActivity in HostActivity :

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

Das Problem

Wenn ich Menüpunkte in NoteActivity , erreiche ich die gewünschte Bestellung wie erwartet:

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

Allerdings, wenn ich Menüpunkte in NotebooksFragment hinzufüge, weil, wie Fragmente funktionieren, wird onCreateOptionsMenu nach der gleichen Methode in HostActivity , was dazu HostActivity , dass die Menüpunkte von HostActivity vor den NotebooksFragment erscheinen.

 @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); } 

Wie kann ich meine gewünschte Menübestellung erreichen?

  • Menü mit Aktionsleiste sherlock
  • Android benutzerdefinierte Dropdown / Popup-Menü
  • Android-Aktionsleiste checkbare Menüelement funktioniert nicht ordnungsgemäß?
  • Was onPrepareOptionsMenu machen?
  • Android-Menü-Symbol Größe
  • Ist es möglich zu grau (nicht nur deaktivieren) ein MenuItem in Android?
  • Positionierung von actionLayout in Navigationsschublade
  • Der überprüfte Zustand von MenuItem wird nicht korrekt mit dem Symbol angezeigt
  • One Solution collect form web for “Menü Bestellunterschiede aufgrund von Fragment- und Aktivitätshierarchie. (OnCreateOptionsMenu)”

    Sie können versuchen, android:menuCategory and android:orderInCategory , um Ihre Bestellung manuell anzugeben.

    Oder verwenden Sie onPrepareOptionsMenu() in HostActivity , wie es nach onCreateOptionsMenu() aufgerufen wird. Nachteil ist, dass es bei jedem MENU-Button aufgerufen wird, nicht nur das erste Mal.

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.