2016-04-05 3 views
0

Ich habe in zwei verschiedenen Formaten in zwei android app tabs.The Daten I aus Cloud abzurufen gleichen Daten angezeigt werden, so dass die Operation ist recht teuer. In einem Tab möchte ich die Daten in einem Listenformat anzeigen und in einem anderen Tab die gleichen Daten auf Karten zeigen. Ich möchte, dass die Daten für beide Registerkarten verfügbar sind, sie aber nur einmal aus der Cloud abrufen möchten. Wie kann ich das machen? Ich möchte nicht die Daten eines Tabs mit einem anderen teilen, sondern nur die gleichen Daten für beide Registerkarten in ihrer onCreateView-Methode.gemeinsame Daten zwischen mehreren Tabs android

Dank

+1

Haben die Daten als Feld in der übergeordneten Aktivität. Dann können Sie in beiden Fragmenten mit einem Aufruf von getActivity zuerst auf diese Daten zugreifen. – chRyNaN

Antwort

0

Verwenden Sie zwei Fragmente - eine für Listenansicht und andere für Kartenansicht. Ihre Hauptaktivität wird also die vom Server gesammelten Daten haben, die von Fragmenten gleichzeitig verwendet werden könnten

+0

Ich habe MainActivity von wo ich ReportsFragment und das Fragment habe dann beide Registerkarten. Ist es mit dieser Architektur möglich oder muss ich mich ändern? Die Daten werden asynchron abgerufen und ich rufe die adapter.notifyDataSetChanged() in einer Callback-Funktion auf. – Fawad

+0

Ich denke, dass Sie dies mit Ihrer aktuellen Architektur erreichen können. Weil Fragmente keinen onCreate- und onDestroy-Lebenszyklus haben. –

+0

danke Ankesh Kumar, ich möchte hinzufügen, dass ich Daten aus dem Cloud-Dienst nur anfordern muss, wenn der Benutzer die ReportsFragment öffnen und nicht die Daten am Anfang zwischenspeichern. Es ist eine lange Daten (1000 Datensätze) und die Daten werden für die Seitenumbruch angefordert. Es dauert ein paar Sekunden, um die Daten zu erhalten. – Fawad

0

Vergessen Sie nicht, dass Fragmente nicht allein verwendet werden können. Jedes Fragment hängt von einer Aktivität ab.

dieser Informationen Nach Sie eine Aktivität haben muss, eine PagerAdapter für die Bereitstellung von Tabs und zwei Fragmente. Wenn Ihre Aktivität die Methode create (onCreate() ausführt), können Sie damit beginnen, Daten aus der Cloud abzurufen und Daten an Fragmente zu senden.

Hinweis: Sie können EventBus verwenden für Daten auf Fragmente von Aktivitäten zu senden. https://github.com/greenrobot/EventBus