2017-01-04 9 views
1

Ich habe ein Fragment F an Aktivität A angehängt. Wenn eine andere Aktivität Frontaktivität wird, heißt es onSaveInstanceState. Ich habe diese Funktion overrided und es sieht so aus:Wiederherstellen des Zustands des Fragments

public void onSaveInstanceState(Bundle outState){ 
saveState_to_outstate 
} 

Wenn nun das Fragment F Front ist es wieder onViewCreated(View view, Bundle savedInstanceState) genannt wird. Ich möchte zuvor gespeicherten Zustand wiederherstellen, aber ich kann nicht savedInstanceState ist Null, obwohl es zuvor in onSaveInstanceState geschrieben wurde.

Warum ist es passiert?

+0

Bitte bearbeiten Sie Ihre Frage und fügen Sie den Code, wo Sie Fragment F an Aktivität A "anhängen" – petey

+0

Ihr Code-Schnipsel nichts tun .. speziell 'saveState_to_outstate' tut nichts, müssen Sie das 'outState'' Bundle verwenden 'aus dem Argument Methode, um Daten zu speichern. –

Antwort

0

Wenn Sie Fragment F mit vorherigen Daten wiederherstellen möchten. Nach meinem Wissen sollten Sie innerhalb von onViewStateRestored() Methode von Fragment durchführen.

OnViewStateRestored (Bundle) teilt dem Fragment mit, dass der gesamte gespeicherte Status seiner Ansichtshierarchie wiederhergestellt wurde. Sie sollten diesen Link zu Ihrer Referenz: Fragment

0

Methode A: Sie können die Daten von Aktivität A zu Fragment F nach Bündel oder Absicht übergeben. Es ähnelt der Verwendung der Speicherinstanz. Send data from activity to fragment in android

MethodB: Sie können nur folgende Funktion mit onCreate() an der gleichen Stelle verwenden, entweder Fragment F oder Aktivität A.

public void onSaveInstanceState(Bundle outState){ outState.putInt("STATE_NAME", 123);//123 is the data you gonna save super.onSaveInstanceState(outState);//Don't forget to put this }

MethodC: Verwenden Sie hard-like SharePreference Android Shared preferences example, es ist auch, wie die Bündel und Absicht, und es wird nicht durch Aktivitäts- oder Fragmentlebensdauer beeinflusst.

Verwandte Themen