Frage

Ich habe zwei Aktivitäten A und B. Wenn ich auf die Schaltfläche in A klicke, die B. angezeigt wird. Wenn ich auf die Schaltfläche in B klicke, hat ich nach der Methode von overdipendingTransition die Über OverridependingTransition -Methode festgelegt. Es funktioniert richtig. Für den Fall, dass die aktuelle Aktivität B. zu dieser Zeit ist, klicke ich auf die Standardschaltfläche zurück im Gerät. Es zeigt den Übergang von rechts nach links, um die Aktivität A zu zeigen.

Wie kann ich diese Standard -Rückschlüssel auf dem Gerät anhören?

BEARBEITEN:

Log.v(TAG, "back pressed");
finish();
overridePendingTransition(R.anim.slide_top_to_bottom, R.anim.hold);
War es hilfreich?

Lösung

@Override
public boolean onKeyDown(int keyCode, KeyEvent event)  {
    if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
        // do something on back.
        return true;
    }

    return super.onKeyDown(keyCode, event);
}

Der folgende Link ist eine detaillierte Erklärung zum Umgang mit den wichtigsten Ereignissen, die von den Android -Entwicklern selbst geschrieben werden:

Verwenden der Rückschlüssel

Andere Tipps

Für Android 2.0 und später gibt es in der Aktivitätsklasse eine spezifische Methode:

@Override  
public void onBackPressed() {
    super.onBackPressed();   
    // Do extra stuff here
}
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if(keyCode == KeyEvent.KEYCODE_BACK){
        //Do stuff
    }

    return super.onKeyDown(keyCode, event);
}

Weitere Informationen zu Back -Schlüssel -Sachen finden Sie hier: http://android-developers.blogspot.com/2009/12/back-and-other-hard-keys-the-stories.html

Ich verwende diesen Code für eine Aktivität mit einem Media Player. Ich musste die Wiedergabe stoppen, wenn der Benutzer die Rückknaste drückte, aber dennoch in die vorherige Aktivität zurückkehren konnte.

@Override
public boolean onKeyDown(int keyCode, KeyEvent event)  {
    if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
        // do something on back.
        try{
            mp.stop(); //this line stops the player
            return super.onKeyDown(keyCode, event);//this line does the rest 
        }
        catch(IllegalStateException e){
            e.printStackTrace();
        }
        return true;
    }

    return super.onKeyDown(keyCode, event); //handles other keys
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top