1 1 Stimme

Android: Zurück-Button abfangen

Frage von Gast | 28.09.2013 um 19:53 Uhr

Ist es bei der Programmierung einer Android-App irgendwie möglich, den Zurück-Button beziehungsweise den Back-Button abzufangen und ein eigenes Event zwischen zu schalten?

Meine Main Acitivity bietet eine Übersicht und verschiedene Dinge, die man anzeigen lassen kann. Aktuell ist es so, dass bei einem Klick auf den Zurück-Button die komplette App geschlossen wird. Stattdessen soll die App nur dann geschlossen werden, wenn sich die Main Activity in der Übersicht befindet. Hat man etwas anderes gewählt, soll der Zurück-Button dazu führen, dass man zurück auf die Übersicht kommt und das Programm erst bei einem erneuten Klick geschlossen wird.

Ist das irgendwie möglich? Ein anderer Anwendungsfall für dieses Problem wäre ja zum Beispiel eine Bestätigung in dem Sinne "Wollen Sie das Programm wirklich schließen?". Vielen Dank.

AntwortenPositivNegativ

Stefan Trost

Profil anzeigen | Nachricht
Avatar
5Beste Antwort
5 Stimmen

Dein Vorhaben ist ohne weiteres umsetzbar. Du musst lediglich das Event onBackPressed() überschreiben, das ausgeführt wird, wenn der Zurück-Button geklickt wird. Kopiere dazu in den Code deiner betreffenden Activity folgende Zeilen:

@Override
public void onBackPressed() {
    super.onBackPressed();
}

Damit ändert sich zunächst nichts an dem Verhalten deiner App. Das super.onBackPressed() sorgt dafür, dass die Standard-Aktion der Zurück-Taste weiterhin ausgeführt wird. Wenn du diese Zeile weglässt, passiert nichts beim Klick auf die Zurück-Taste.

Was du zusätzlich benötigst ist eine Bedingung von der abhängt, welche Aktion beim Klick auf den Back-Button ausgeführt werden soll. Dazu führen wie die Variable canClose ein.

private boolean canClose = true;

public void showDetails() {
   // code zum anzeigen der detail ansicht
   canClose = false;
}

public void showOverview() {
   // code zum anzeigen der übersicht
   canClose = true;
}

@Override
public void onBackPressed() {
    if (canClose) {
        super.onBackPressed();
    } else {
        showOverview();       
    }
}

Wir deklarieren die Variable canClose direkt in unserer Activity und setzen sie zu Beginn auf true. Das heißt, würden wir direkt nach dem Starten der App auf den Back-Button klicken, würde das Programm schließen.

Wenn wir nach dem Starten der App aber unsere Details anzeigen (showDetails), setzen wir canClose temporär auf false. Das führt dazu, dass beim Klick auf den Back-Button bei geöffneter Detail-Ansicht zuerst die Übersicht angezeigt wird (showOverview). Gleichzeitig setzen wir dabei canClose auf true, so dass bei dem nächsten Klick auf den Zurück-Button tatsächlich die komplette App geschlossen wird.
28.09.2013 um 20:03 Uhr

AntwortenPositiv Negativ
Antworten

Ähnliche Themen

Wichtiger Hinweis

Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.

Jetzt mitmachen

Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.