32

Ich habe die folgende Methode in meiner Registerkarte Aktivität überschrieben und es funktioniert gut, aber ich möchte spezifische Optionsmenüs für jedes Fragment. Wenn ich das in mein Fragment stecke und den Menü-Knopf drücke, passiert nichts.Wie kann ich onCreateOptionsMenu in einem Fragment auf einer Registerkarte Aktivität verwenden? (Sherlock ActionBar)

@Override 
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
    MenuInflater inflater = getSupportMenuInflater(); 
    inflater.inflate(R.menu.activity_calc, menu); 
    return true; 
} 
+2

ActionBarSherlock unterstützt 'TabActivity' nicht. – CommonsWare

+0

Ich habe SherlockFragmentActivity mit dem contentView als eine ViewPager + -Registerierungsimplementierung verwendet (also kann ich den Swiping tun und auf Registerkarten klicken). Es ist nicht speziell eine TabActivity ... es ist nur eine Aktivität mit Tabs. – snotyak

+1

Es ist etwas falsch mit dem Code, den Sie gepostet haben, es wird nicht kompiliert. "inflater" wird zweimal definiert und "return true" wird in einer Methode mit dem Rückgabetyp void nicht akzeptiert. – RenniePet

Antwort

85

Sie benötigen setHasOptionsMenu(true) auf Ihrem Fragment zu nennen, bevor es in der Aktionsleiste teilnehmen können.

+0

Ah, ja. Ich habe das falsche Ding kopiert, aber es hat die gleiche Methode, haha. Ich werde es gleich ausprobieren. Vielen Dank. – snotyak

+3

hwo diesen Code zu verwenden? –

+0

Ein doc Link auf 'setHasOptionsMenu (true)' wird hilfreich sein, danke. – Jigar

0

Ich schlage vor, Sie überprüfen http://code.google.com/p/sherlock-demo/. Wie BackpackOnHead beschreibt, verwendet es ViewPager + ActionBar Tabs, damit Sie auf zwei verschiedene Arten zwischen den Fragmenten in einer Aktivität navigieren können. In diesem Fall ist es der FragmentTabs-Teil der API-Demos-Beispielanwendung, der nach ActionBarSherlock portiert wurde. Insbesondere das LoaderThrottle-Fragment hat seine eigenen OptionsMenu-Elemente.

Verwandte Themen