Ich habe einige Fragen über die Weitergabe von Daten an eine andere Aktivität. Lassen Sie uns sagen, dass ich drei Aktivitäten habe ich sie genanntKorrekter Datentransfer zwischen Aktivitäten
erste Aktivität
zweite Aktivität
dritte Aktivität
Wenn App vom Benutzer aktiviert ist, ist der Benutzer in der ersten Aktivität. Um von der ersten Aktivität zur dritten Aktivität zu gelangen, muss der Benutzer auch die zweite Aktivität durchlaufen. Der Workflow
erste Aktivität (Benutzerdruckknopf) -> zweite Aktivität (Benutzerdruckknopf) -> dritte Aktivität
die ich von der ersten Aktivität im dritten benötigen Daten Nehmen wir an, Aktivität, also muss ich meine HashMap mit meinen Daten von der ersten Aktivität zur zweiten Aktivität übergeben und dann zur dritten Aktivität? Gibt es eine Möglichkeit, Daten direkt von der ersten Aktivität an die dritte Aktivität zu übergeben, aber wie gesagt, muss der Benutzer gehen auch durch zweite Aktivität.
ich das in dieser Art und Weise mache ...
Intent secondActivity = new Intent(this, secondActivity.class);
secondActivity.putExtra("myHashMap", dataHashMap);
this.startActivity(secondActivity);
dann in der zweiten Tätigkeit habe ich diesen Teil des Codes
secondActivity = getIntent();
dataHashMap = (HashMap<String,
String>)secondActivity.getSerializableExtra("myHashMap");
und dann bin ich Wiederholung dieser oberen zwei Schritten für die dritte Aktivität. Ist das richtig? weil es ein wenig verwirrend und zeitaufwendig aussieht. Es gibt noch ein weiteres Problem. Wenn ich jetzt in der dritten Aktivität bin und zur zweiten oder ersten Aktivität zurückkehren möchte, überlasse ich immer eine HashMap, weil Aktivitäten diese Art von Daten erwarten. Gibt es eine Möglichkeit, manchmal zu einer vorherigen Aktivität zurückzukehren, aber keine Daten mehr zu übergeben (in meinem Fall HashMap), wenn sie nicht benötigt werden?
secondActivity.putExtra("myHashMap", dataHashMap); //- I would like to sometimes skip this step
Ich habe versucht, unter diesem Code mit zu handhaben, aber es funktioniert nicht, meine Anwendung zu stoppen halten/abstürzt, weil zweite Aktivität Hashmap Daten aus der dritten Aktivität erwartet.
secondActivity = getIntent();
if(secondActivity != null){
dataHashMap = (HashMap<String,
String>)secondActivity.getSerializableExtra("myHashMap");
}
Vielen Dank für die Antworten, Grüße.
Nein, es sei denn, Sie speichern in der App pref oder db. –
@SouravGanguly Ich habe mysql-Datenbank, so dass ich die asynctask-Klasse zu jeder Aktivität hinzufügen sollte, wo ich einige Daten erhalten und diese Daten aus der Datenbank mit Hilfe von asynctask herunterladen soll, wenn ich etwas brauche? –
Verwenden Sie die von greenrobot erstellte EventBus-Bibliothek –