2017-01-25 6 views
0

Ich versuche nur onBackPressed() zu schreiben, aber es ist in geerated Code nicht vorhanden, so ignoriert Text in meinem onBackPressed() überschrieben.@Override funktioniert nicht mit Android Annotation?

Mit diesem Code verhält sich das "Zurück" -Parieren normal, d. H. Erzeugt neue Elternaktivitäten und Toast wird nicht angezeigt. Warum?

Ich möchte nur mit ausgefülltem Formular zur vorherigen Seite zurückkehren, wenn der Benutzer die Bewegung nicht bestätigt, aber "zurück" gedrückt, um einige Fehler zu bearbeiten.

+0

Sie müssen 'onBackPressed()' für die Aktivität, mit der Sie gerade arbeiten, überschreiben. –

+0

Mögliches Duplikat der [onBackPressed() -Methode, die nicht in AppCompatActivity ausgelöst wurde] (http://StackOverflow.com/questions/31681141/onbackpressed-method-not-triggered-in-appcompatactivity) –

+0

Der obige Code funktioniert gut, aber können Sie bestehen ActivityName.this in makeText-Methode statt nur dies. –

Antwort

0

versuchen super.onBackPressed()

@Override 
    public void onBackPressed() { 
     super.onBackPressed(); 
     Toast.makeText(this, "onBackPressed", Toast.LENGTH_SHORT).show(); 
     finish(); 
} 
+0

Danke, aber ich möchte kein Standardverhalten verwenden. Ich muss zu meiner vorherigen Aktivität zurückkehren, ohne dass sie neu erstellt wird, indem ich zurück drücke. – Eugene

+0

Ja, das ist der Fall, wenn Sie onBackPressed als Override überschreiben (nur durch Aufruf des Super), wird Ihre Aktivität zu der vorherigen Aktivität zurückkehren. und Sie können dieses Verhalten ändern, wenn Sie möchten, dass Sie Ihren Code hinter super.onBackPressed() setzen können; –

+0

Problem ist, dass wenn ich Android-Annotation verwende, all diese Methode ignoriert wird. Toast "onBackPressed" neuere Shows. – Eugene

0

AndroidAnnotations hinzuzufügen ist @Override oder onBackPressed() in keiner Weise zu ändern. diese

Der richtige Weg onBackPressed() für Ihren Fall außer Kraft zu setzen ist:

@Override 
    public void onBackPressed() { 
     Toast.makeText(this, "onBackPressed", Toast.LENGTH_SHORT).show(); 

     super.onBackPressed(); 
    } 

Sie müssen super.onBackPressed() nennen, weil es notwendig, die Dinge tut, wie Ihr Fragment s knallen und läuft Activity Übergänge. Und es wird schließlich finish() aufrufen.

Verwandte Themen