Wie kann ich einen bedingten InvalidateOptionsMenu () Aufruf abhängig von der API-Ebene in Android machen?

Ich versuche, die Menütasten meiner App zu aktualisieren, jedes Mal wenn einer von ihnen gedrückt wird; In API 11+ musst du invalidateOptionsMenu() anrufen, um dies zu tun; Da möchte ich, dass meine App mit niedrigeren APIs kompatibel ist, wie kann ich diese Methode nur bei der Verwendung von api 11+ aufrufen?

  • Android DownloadManager.ERROR_FILE_ERROR
  • Android: bekomme Benutzer-ID, ohne dass es für scary (für Benutzer) Berechtigungen erforderlich ist?
  • Objective-C und Android
  • Scale & Translate Animation
  • Programmatisches Ausblenden / Anzeigen von Android Soft Keyboard
  • Wie kann ich den Trefferbereich des Android-Knopfes erhöhen, ohne den Hintergrund zu skalieren?
  • Verwenden von JSON-Datei in Android App-Ressourcen
  • Wie finde ich den Namen des Trägers in Android
  • Debugging im Aktienbrowser auf einem Samsung Galaxy S4 auf KitKat
  • Google Drive-Integration mit der aktuellen Aktivität
  • Testen Sie eine schwache Referenz, bevor Sie es Java verwenden
  • Android AdapterView?
  • 6 Solutions collect form web for “Wie kann ich einen bedingten InvalidateOptionsMenu () Aufruf abhängig von der API-Ebene in Android machen?”

    Benutzen

     ActivityCompat.invalidateOptionsMenu(Activity activity) 

    Aus der Kompatibilitätsbibliothek .

    Für die anderen, die nach einer Antwort suchen, wie ich war:

    Wenn Sie ActionBarSherlock verwenden und versuchen, die Aktionsleisten- Schaltflächen auf API <11 zu aktualisieren , anstatt

    Activity.invalidateOptionsMenu()

    Sie können verwenden

    SherlockActivity.supportInvalidateOptionsMenu() :

    Wenn du ActionBarActivity in deiner Klasse verlängst, dann brauchst du nur das:

     supportInvalidateOptionsMenu(); 

    Ich glaube nicht, dass es irgendeine Notwendigkeit für Kompatibilitätsbibliothek und so weiter gibt, einfach ein einfaches tun

     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { invalidateOptionsMenu(); } 

    Sie müssen es nicht vor Wabe anrufen, da afaik, onPrepareOptionsMenu () aufgerufen wird, wenn die Menütaste gedrückt wird. Für mich geht das.

    Haben Sie versucht, eine FragmentActivity aus dem Support Package anstelle einer normalen Aktivität zu verwenden? Ich glaube, die FramentActivity würde dann die Methode haben, die du brauchst.

    Ich glaube ich habe es … die Antwort war, eine neue Klasse zu schaffen:

     public class wrapThree { public void invalidate(myActivity act) { act.invalidateOptionsMenu(); } } 

    Und ruf dann diese Methode von myActivity an, wenn die API 11+ ist

    Mindestens das gibt keine Fehler auf API <11 … muss es noch auf API 11+ testen

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