2013-07-10 10 views
14

Ich habe diesen Beitrag gesehen, aber die Lösungen hier gepostet arbeiten nicht für mich: get the latest fragment in backstackHolen Sie sich das letzte Fragment in zurück Stapel

Wenn ich ein Fragment für einen anderen ersetzen ich benutze:

FragmentManager manager = getSupportFragmentManager(); 
    FragmentTransaction ft = manager.beginTransaction(); 

    ft.replace(android.R.id.tabcontent, fragment, tag); 
    ft.addToBackStack(null); 

    ft.commit(); 

So, Bitte beachten Sie, dass ich Tags verwende, um ein Fragment zu erkennen.

insbesondere Mein Problem ist folgendes:

nehme ich fragment_A, fragment_B und fragment_C haben. Ich kann von fragment_A oder fragment_B zu fragment_C gelangen und abhängig vom Elternteil des Anrufs muss ich etwas bestimmtes tun. Also, wieder muss ich das letzte FRAGMENT im Backstack wiederherstellen.

Wenn ich versuche zu tun:

FragmentManager fm = getSupportFragmentManager(); 

     for(int entry = 0; entry < fm.getBackStackEntryCount(); entry++){ 
      String ide = fm.getBackStackEntryAt(entry).getName(); 
      Log.i("TAG", "Found fragment: " + ide); 
     } 

I nulls bekommen. Wenn ich getId() stattdessen verwenden, erhalte ich Zahlen also habe ich versucht zu tun:

int id = fm.getBackStackEntryAt(entry).getId(); 
Fragment fragment = fm.findFragmentById(id); 
Log.i("TAG", "Found fragment: " + fragment.getTag()); 

Aber ich nulls bekommen .. Ich weiß nicht, was anderes zu tun, so wird jede Hilfe dankbar.

Edit: ich diese Methoden in onBackPressed nennen() {...}

Antwort

16

Wenn Sie BackStackEntry.getName() verwenden sind, sollte es sein:

ft.replace(android.R.id.tabcontent, fragment, tag); 
ft.addToBackStack(tag); 
+0

du hast recht, das war, was ich fehlt. Vielen Dank! – kiduxa

+0

Unpraktische Verwendung des gleichen Tags für das Fragment, das hinzugefügt oder durch ersetzt werden soll. und der Backstack, der eigentlich der Name des vorherigen Fragments sein sollte, um sich daran zu erinnern, dass die Transaktion mit diesem Fragment zusammenhängt. –

Verwandte Themen