Ich habe eine Activity
und 5 Fragment
's. Auf der ersten Fragment
Benutzereingaben Telefonnummer. Auf der letzten (fünften) Fragment
muss ich diese Telefonnummer anzeigen, andere Felder eingeben und alle Daten an den Server senden. Für jede verwende ich separate Presenter (MVP).Android Pass Daten zwischen den Fragmenten
Wie Daten vom ersten Fragment an die letzte weitergegeben werden?
1) Ich möchte nicht alle Ketten von Fragmenten durchlaufen, weil sie diese Daten nicht benötigen.
2) Wenn diese Daten im Hosting Activity
speichern, dann muss ich ((SomeActivity)getActivity()).getUserData()
innerhalb Fragment
Klasse aufrufen und diese Daten an Presenter übergeben.
3) Ich wählte den letzten Ansatz. Ich habe Singleton UserData Klasse erstellt. Dies ist eine einfache POJO-Klasse. Ich erstelle Instanz von UserData
in der ersten Fragment
Set benötigt Daten und dann mit der letzten Fragment
, um Daten abzurufen und fehlende Felder hinzuzufügen.
Aber ich weiß nicht, ist Ansatz mit Singleton richtige Lösung. Weil ich Singleton-Instanz löschen muss, wenn Benutzer zu einem anderen Activity
geht. Wenn es bessere Lösung gibt?
EDIT
Ich dachte über EventBus. Aber ich werde Daten vom Fragment an den Presenter übergeben müssen. Jetzt rufe ich UserData.getInstance()
im Inneren an und erhalte Daten. Ich möchte, dass Code eleganter und auch korrekt ist. Ich frage nach Meinung von erfahreneren Entwicklern, was besser zu verwenden ist.
Können Sie 'SharedPref' nicht verwenden? –
@RohitArya Ich denke nicht, dass dies eine bessere Lösung ist, als Daten innerhalb der Aktivität zu halten. Ich brauche nur diese Daten an den Server zu senden, nicht für lange Zeit –
Dann wäre Singleton ein guter Ansatz. –