2013-09-03 8 views
6

Ich bin dabei, von ActionBarSherlock zur ActionBarCompat-Bibliothek zu migrieren, die in Google IO 2013 eingeführt wurde (ich mache das, damit ich ActionBarDrawerToggle verwenden kann).Die endgültige Methode kann nicht von ActionBarActivity überschrieben werden

Ich habe bereits alle notwendigen Abhängigkeiten (AppCompat, neueste Support-Bibliothek ...) aussortiert, alle Importe behoben, aber jetzt, wenn ich versuche, ActionBarActivity onMenuItemSelected zu verwenden, erhalte ich einen Fehler.

@Override 
public boolean onMenuItemSelected(int featureId, MenuItem item) { 
    ... 
} 

Fehler:

Cannot override the final method from ActionBarActivity

Die ursprüngliche Methode von ActionBarActivity (geerbt von FragmentActivity) ist ausgeschlossen. Wenn ich ABS benutzt habe, hat das funktioniert, jetzt kann ich die Methode nicht überschreiben.

(MenuItem ist der Klasse android.view.MenuItem und nicht die compat Version ...)

Bin ich etwas fehlt?

Antwort

11

Anstelle von onMenuItemSelected habe ich onOptionsItemSelected verwendet und den Code in Ordnung kompiliert.

Kann es sein, dass onMenuItemSelected in den Dokumenten, aber nicht im Code erscheint?

+3

Um Ihre Frage zu beantworten: Nein, in 'android.support.v7.app.ActionBar' Methode' onMenuItemSelected' ist im Code, aber es ist ** final ** Methode, und Sie können nicht '@ Override' ** letzte ** Methoden. – Stigi

+0

Entschuldigung, ich habe mich dort vertippt, und es ist zu spät zu bearbeiten. Natürlich meinte ich 'android.support.v7.ActionBarActivity'. – Stigi

+0

@Stigi du hast recht, aber es ist komisch, weil ich ABS benutzt habe und es auch dort definiert ist. Nicht sicher, was es ist, wenn es nicht überschrieben werden soll ... – Michael

Verwandte Themen