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 .

  • Erstellen von Android-Widgets mit Phonegap
  • Android: Liste der verfügbaren vertrauenswürdigen Stammzertifikate
  • Android VideoView: Videoansicht ist in einer Dialogansicht viel dunkler
  • Android Multiline Benachrichtigungen / Benachrichtigungen mit längerem Text
  • Android - Google Spreadsheet Api
  • Androide Eingabeaufforderung der Benutzer Eingabe eines Dialogs
  • 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?

  • Konvertieren Sie AsyncTask zu RxAndroid
  • Spinner bekommt keinen Fokus
  • Wie zeichne man einen Pfad auf einer Android-Leinwand mit Animation?
  • So synchronisieren Sie Play Services Real Time Multiplayer
  • Erfrischt eine Aktivität aus dem Dienst, wenn Active
  • Schlechte Array-Längen, Benachrichtigungsmanager verursacht Telefonabsturz auf 4.4
  • 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.