Was bedeutet addToBackStack mit Nullparameter?

Ich habe einen Kundencode. Es gibt nur eine Aktivität für alle Fragmente, dh die einzelne Aktivität verwaltet alle Fragmente.

Diese Aktivität enthält den folgenden Code für jedes Fragment am Methodenende dieses Fragment-

  • Android: Die abgerundeten Ecken funktionieren in verschiedenen Android-Versionen
  • Wie funktioniert AsyncTask in Android
  • Libgdx-Spiel stürzt auf Android ab
  • Kann nicht adb ziehen Datenbank auch nach chmod 777 auf meinem Gerät
  • Intel X86 Emulator Beschleuniger (HAXM Installer) VT / NX nicht aktiviert
  • DrawerLayout's Item Click - Wann ist die richtige Zeit, um Fragment zu ersetzen?
  • Zum Beispiel – Fragment MoreFragment:

    MoreFragment firstFragment = new MoreFragment(); getSupportFragmentManager().beginTransaction() .replace(R.id.article_fragment, firstFragment) .addToBackStack(null).commit(); 

    Damit,

    1) Was ist die Bedeutung von addToBackStack(null) gefolgt von einem commit() ?

    2) Warum musst du einen addToBackStack an addToBackStack ?

    3) Wie bekomme ich das Fragment, nachdem ich so hinzugefügt wurde?

    Scheint, wie dieser Code ist nutzlos, da ich den Code ohne die letzte Zeile lief .addToBackStack(null).commit() und es lief ohne Probleme.

  • OnClick innen Fragment aufgerufen Aktivität
  • Wie kann ein Android EditText (TextView) den blinkenden Cursor ziehen?
  • PreferenceActivity und Thema nicht anwenden
  • Android googleMap Map zeigt nicht, nur Raster, manchmal
  • Android Span oder Non-Breaking Space Causing Zeilenumbruch und Textvervielfältigung (4.0 ICS)
  • DrawerLayout Sperrmodus funktioniert nicht wie erwartet
  • 2 Solutions collect form web for “Was bedeutet addToBackStack mit Nullparameter?”

    Was ist die Bedeutung von addToBackStack (null) gefolgt von einem commit ()?

    Zitieren von Dokumenten

    Durch das Aufrufen von addToBackStack () wird die Ersetztransaktion in den hinteren Stack gespeichert, so dass der Benutzer die Transaktion umkehren und das vorherige Fragment zurückführen kann, indem er die Schaltfläche Zurück drückt.

    Wenn Sie mehrere Änderungen an der Transaktion hinzufügen (z. B. ein anderes add () oder remove ()) und call addToBackStack (), dann werden alle Änderungen, die vor dem Aufruf von commit () angewendet wurden, dem Back Stack als Single Transaction und der Back-Taste hinzugefügt Wirst sie alle zusammen umkehren.

    Die Reihenfolge, in der Sie Änderungen an einer FragmentTransaction hinzufügen, spielt keine Rolle, außer:

    Sie müssen commit() zuletzt anrufen Wenn Sie mehrere Fragmente zu demselben Container hinzufügen, dann bestimmt die Reihenfolge, in der Sie sie hinzufügen, die Reihenfolge, in der sie in der Ansichtshierarchie erscheinen.

    Also hast du endlich begangen

    Warum musst du einen Nullparameter an addToBackStack übergeben?

    Es muss nicht null sein, es kann ein String sein. Wenn du nicht willst einfach pass null

     public abstract FragmentTransaction addToBackStack (String name) Added in API level 11 Add this transaction to the back stack. This means that the transaction will be remembered after it is committed, and will reverse its operation when later popped off the stack. Parameters name An optional name for this back stack state, or null. 

    Scheint, wie dieser Code ist nutzlos, da ich den Code ohne die letzte Zeile lief .addToBackStack (null) .commit () und es lief ohne Probleme

    Wenn Sie zum vorherigen Fragment navigieren möchten, fügen Sie es zum Backstack hinzu. So hängt es davon ab, ob Sie das Fragment dem Backstack hinzufügen möchten.

    Wie bekomme ich das Fragment, nachdem ich so hinzugefügt wurde?

    Sie haben bereits die Fragmentinstanz firstFragment . Also weiß ich nicht was du meinst, indem du das Fragment später bekommst

    Mehr Informationen @

    http://developer.android.com/guide/components/fragments.html

    http://developer.android.com/reference/android/app/FragmentTransaction.html#addToBackStack(java.lang.String)

    Ihre Antworten sind veraltet. Wenn du keine Fragmente zum Stapel hinzufügen willst, solltest du unter dem Code-Code benutzen:

      public static void replaceFragment (@NonNull FragmentManager fragmentManager, @NonNull Fragment fragment,int frameId){ checkNotNull(fragmentManager); checkNotNull(fragment); FragmentTransaction transaction = fragmentManager.beginTransaction(); transaction.replace(frameId, fragment); transaction.disallowAddToBackStack(); // <-- This makes magic! transaction.commit(); } 

    Belowe hast du süßes Beispiel, wie es benutzt wird:

     GameFragment fragment = GameFragment.newInstance(mGameObject, currentQuestion); ActivityUtils.replaceFragment(getFragmentManager(), fragment, R.id.main); 
    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.