maksimilian schrieb:
I krieg's nicht hin, hab's mit Parcelable versucht. Ist aber auch nicht notwendig. Es macht in meinem Fall eigentlich keinen Sinn die Queue zu übergeben. Die Activity kann den Aktionscode als Ergebnis an die MainActivity zurückgeben, und diese versorgt die Queue.
Aber prinzipiell würde mich schon interessieren, wie komplexere Daten an die Activity übergeben werden können.
Parcelable, und alles andere was man in ein Intent packt, wird für die Übergabe an eine andere Activity serialisiert und deserialisiert. Das muss einem bewusst sein. D.h. dass man niemals dieselbe Instanz in der Hand hat, sondern immer eine Kopie. Dementsprechend werden Änderungen nicht an den Aufrufenden zurück propagiert.
Singleton empfehle ich eigentlich nur für erfahrene Programmierer, aber inzwischen gibt es mit ViewModel wie schon erwähnt ja gute Möglichkeiten State zwischen Komponenten shared zu machen.
Ich weiß, dass du dein Problem als gelöst ansiehst, aber ich wollte nur ergänzen WARUM das nicht geht.
jogimuc schrieb:
In Java kannst du keine Referenz Pointer wie in C oder auch andern Sprachen übergeben.
Äh doch. Grundsätzlich sind normale Aufrufe in Java call-by-reference. (Außer primitive Typen, dort call-by-value) D.h wenn ich in einer Methode eine Liste bekomme und diese verändere sieht auch der Aufrufer meine Änderungen.
In diesem speziellen Fall hängt halt noch eine Serialisierung dazwischen, deswegen geht das hier nicht, aber Java an sich ist call-by-reference.