2016-07-25 13 views
0

Ich habe 3 Aktivitäten:Zurück-Taste sichert sich immer auf die Haupttätigkeit

MapActivity ScheduleActivity ItemDetailActivity

MapActivity und ScheduleActivity kann ItemDetailActivity starten. Das Problem ist, wenn ich auf die Zurück-Schaltfläche klicke, es immer auf die MapActivity zurückgreift. Ich habe in diesem Forum gesucht, viele Leute antworten "überschreibe das OnBackPressed und starte die Absicht". Ich habe viele Dinge versucht, wie: Überschreiben Sie die onBackPressed und verwenden Sie , wenn die ID der Aktivität zu erkennen. Die ItemDetailActivity in Ihrem Manifest verfügt nicht über das übergeordnete Attribut.

<activity 
     android:name=".MapActivity" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme.NoActionBar"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

    <activity 
     android:name=".ScheduleActivity" 
     android:label="@string/title_activity_agenda" 
     android:theme="@style/AppTheme.NoActionBar" /> 

    <activity 
     android:name=".ItemDetailActivity" 
     android:label="@string/title_item_detail" 
     android:theme="@style/AppTheme.NoActionBar" /> 

Ich habe versucht, NavUtils, startActivity im OnBackPressed Ereignis, aber es doens't funktioniert.

Der Code zum Öffnen der ItemDetail von MapActivity.

mClusterManager.setOnClusterItemInfoWindowClickListener(new ClusterManager.OnClusterItemInfoWindowClickListener<MyItem>() { 
      @Override 
      public void onClusterItemInfoWindowClick(MyItem myItem) { 

       Intent intent = new Intent(MapActivity.this, ItemDetailActivity.class); 

       intent.putExtra("instalattion", myItem.getInstalattion()); 
       intent.putExtra("activity", "MapActivity"); 

       startActivity(intent); 

      } 
     }); 

rv.addOnItemTouchListener(
       new RecyclerClickListener(this, new RecyclerClickListener.OnItemClickListener() { 
        @Override 
        public void onItemClick(View view, int position) { 

        //whatever code 

         Intent intent = new Intent(ScheduleActivity.this, ItemDetailActivity.class); 

         intent.putExtra("instalattion", installationTO); 
         intent.putExtra("activity", "ScheduleActivity"); 

         startActivity(intent); 

        } 
       })); 
    } 
+0

Hinzufügen android: parentActivityName = "ACTIVITY_NAME" in Ihrer Manifest-Datei – vinoth12594

+0

Woher starten Sie ScheduleActivity? Bitte aktualisieren Sie die Frage mit dem Aktivitätscode – sJy

+3

Überschreiben Sie 'onBackPressed()'? –

Antwort

0

In Ihrem Manifest:

<activity 
    android:name=".ItemDetailActivity" 
    android:label="@string/title_item_detail" 
    android:theme="@style/AppTheme.NoActionBar" > 
    <!-- SET YOUR PARENT ACTIVITY --> 
    <meta-data android:name="android.support.PARENT_ACTIVITY" android:value=".ScheduleActivity" /> 
    </activity> 

So set parent Aktivität Ihrer ItemDetailActivity zu ScheduleActivity und zurück zu Eltern Aktivität gehen.

+0

ScheduleActivity wurde zur übergeordneten Aktivität, ok. Aber das Problem ist, wenn ich die ItemDetail von MapActivity starten, muss es zurück zu der MapActivity. Ich habs? Zum Beispiel: Ich habe die ItemDetail von MapActivity gestartet, wenn ich auf die Zurück-Schaltfläche klicke, sollte es zurück zur MapActivity gehen. Sonst zurück zur ScheduleActivity – OnScreen