0

Ich habe eine Anwendung mit einer Navigationsleiste, um zwischen verschiedenen Bildschirmen der App zu wechseln. Einige dieser Bildschirme sind einfach und können leicht mit einem Fragment angezeigt werden, während die anderen erfordern, dass ich Daten von einem Server abrufe und Felder oder eine Listenansicht auf dem Bildschirm ausfülle.Android - Sollte ich Aktivitäten oder Fragmente für meine Navigationsleiste verwenden, wenn ich Daten herunterladen muss

Sollte ich eine Mischung aus Fragmenten und Aktivitäten basierend auf den Bedürfnissen der einzelnen Bildschirme verwenden? Die Verwendung von Fragmenten ist nett, weil der Übergang des Bildschirms nicht wirklich wahrnehmbar ist, während eine neue Aktivität gestartet wird. Gibt es einige Informationen zu Best Practices für eine Situation, in der Informationen asynchron heruntergeladen werden, während die Aktivität gestartet wird? Ich würde es vorziehen, ein Fragment für diese Situation zu verwenden, da das Fragment angezeigt wird und die Information/Listenansicht nach dem Anzeigen des Bildschirms gefüllt wird.

+0

In meinem Verständnis haben beide Fragment und Aktivität das gleiche Problem, wenn sie vor dem Async-Aufruf angezeigt werden, um Daten nach der Anzeige zu erhalten. Ich habe ähnliche Situation in meiner App und ich verlasse mich auf lokale SQLLite DB, um Informationen zu speichern, die früher heruntergeladen wurden. Wenn der asynchrone Prozess zuerst abgeschlossen wird, zeigt er trotzdem neue Daten an, sonst sieht der Benutzer die Daten, sobald sie wieder zu diesem Bildschirm zurückkehren. Nicht sicher, ob das hilft. –

+0

@SachiinGupta Es hilft irgendwie. Das Problem ist, dass zwei meiner Bildschirme Suchfenster sind, so dass ich die Daten nicht vorher herunterladen kann. –

Antwort

-2

Sie haben ein paar Optionen:

1) von der Absicht des Bundle Verwendung:

Intent mIntent = new Intent(this, Example.class); 
Bundle extras = mIntent.getExtras(); 
extras.putString(key, value); 

2) Erstellen Sie ein neues Bundle

Intent mIntent = new Intent(this, Example.class); 
Bundle mBundle = new Bundle(); 
mBundle.putString(key, value); 
mIntent.putExtras(mBundle); 

3) Verwenden Sie die putExtra() Abkürzung Methode der Absicht

Intent mIntent = new Intent(this, Example.class); 
mIntent.putExtra(key, value); 
+0

Tut mir leid, dass ich mit dem, was ich gesucht habe, nicht klar gewesen sein könnte. Ist es akzeptabel, Aktivitäten beim Navigieren der App über die Navigationsleiste am unteren Bildschirmrand zu verwenden, oder gibt es eine Möglichkeit, Fragmente zu verwenden, ohne dass nach dem Ende der Downloads verzögerte Informationen auf dem Bildschirm angezeigt werden? –

+0

Bitte geben Sie etwas Code, damit ich verstehen kann – user2423314

0

Nun, erstens ist die Verwendung von Fragment eine sehr gute Wahl, und ich benutze auch Fragmente, wenn ich NavigationDrawer in meiner Anwendung verwende, um Daten herunterzuladen und Listen oder andere Layouts anzuzeigen. Sie können AsyncTask in Fragment auch verwenden, um Daten herunterzuladen und anzuzeigen.

Zweitens, wie können Sie wissen, welches Menü vom Benutzer ausgewählt wird, um Daten herunterzuladen, bevor das Fragment erstellt wird. Es ist sehr OK, Ladebildschirm oder etwas wie Fortschrittsbalken zu zeigen, um Daten herunterzuladen und in Fragmente aufzufüllen.

Verwandte Themen