2014-05-05 8 views
17

Ich habe eine Anwendung, die eine Aktivität mehrmals aus verschiedenen Aktivitäten ruft. Also, ich versuche, die "Zurück-Taste" in der Aktionsleiste für diese Aktivität zu implementieren.So legen Sie mehrere übergeordnete Aktivitäten für die Verwendung von Android zurück Schaltfläche

switch (item.getItemId()) { 
    case android.R.id.home: 
     NavUtils.navigateUpFromSameTask(this); 
     return true; 
    default:   
     return super.onOptionsItemSelected(item); 
    } 

und: mit Für diese im tut

<meta-data 
      android:name="android.support.PARENT_ACTIVITY" 
      android:value="view.TweetsIndividuoActivity" /> 

Das Problem ist jetzt, ist, dass ich eine übergeordnete Aktivität auf mein Android-Manifest, Ursache gesetzt cannt, weiß ich nicht, wer das ist Elternteil dieser Aktivität.

Was ist die Lösung?

Danke

Antwort

31

Es ist einfacher als Sie denken.

switch (item.getItemId()) { 
    case android.R.id.home: 
     finish(); 
     return true; 
    default:   
     return super.onOptionsItemSelected(item); 
} 

Methode finish() Ihre Aktivität und zeigen das man zerstören, die es angefangen hat. Das ist was du willst, wenn ich dich richtig verstanden habe.

Ihre aktuelle Lösung ist für Fälle gedacht, in denen Sie jedes Mal zum selben Elternteil zurückkehren möchten, z. Google Mail-App tut es. Wenn Sie die E-Mail von der Benachrichtigung aus öffnen und dann die Zurück-Taste auf der Aktionsleiste drücken, wird nicht zum Bildschirm HOME zurückgekehrt, sondern Sie sehen den Gmail-Posteingang.

+2

Danke! Aber wenn das funktioniert, verstehe ich nicht, warum zu verwenden: NavUtils.navigateUpFromSameTask (this); –

+2

Es ist für das gedacht, was ich im letzten Teil meiner Antwort geschrieben habe. Aktivitäten werden in Aufgaben ausgeführt. Wenn Sie eine Aktivität öffnen, die zu einer anderen Aufgabe gehört, müssen Sie Optionen wählen: 1. Zurück zu vorher sichtbaren Aktivitäten; Das ist die Zurück-Schaltfläche. 2. Zurück zur vorherigen Aktivität der aktuellen Aufgabe. Lesen Sie http://developer.android.com/guide/components/tasks-and-back-stack.html für eine detaillierte Erklärung. –

+0

Ughhh Ich wurde von jemandem erwischt, der ein glänzendes Google Util benutzt (NavUtils.navigateUpFromSameTask (this);) ... – DoctorD

6

Sie werden immer zu der Aktivität zurückkehren, von der Sie die neue Aktivität gestartet haben

Keine Notwendigkeit, den folgenden Code zu verwenden.

<meta-data 
     android:name="android.support.PARENT_ACTIVITY" 
     android:value="view.TweetsIndividuoActivity" />