Class von Activity zu Activity weiterleiten.

  • 9 Antworten
  • Letztes Antwortdatum
A

Andi0310

Neues Mitglied
0
Hallo zusammen.

Ich habe folgendes Problem, ich habe eine Activity, in welcher ich einige Eingaben machen kann und möchte eine zweite Activity in welcher ich diese ausgeben kann.

Ich habe irgendwie gesehen, dass man dies über Bundle macht.
Jedoch finde ich hier nur Funktionen um einzelne Variablen zu übergeben aber nichts womit ich die Class mit den Eingaben übergeben kann.

Ich möchte nicht jede einzelne Variable hier im Quellcode einzeln weitergeben.
Die Eingaben sind in einem Class-Object abgelegt.

Kann mir jemand helfen ?

Danke.
 
Moin,

erstmal: du möchtest sicher ein Objekt und nicht eine Klasse übergeben, oder?

um die Activity zu "starten" nutzt du ja bestimmt einen Intent. Diesem kannst du mit putExtras(...) Extras hinzufügen und diese dann in deiner Zielactivity mit getExtras(...) wieder laden.
Das Problem ist hier, dass du nur einzelne Werte übergeben kannst und nicht einfach ein Objekt. Daher musst du dein Objekt irgendwie serialisieren und später wieder neu bauen. Hierfür bietet sich dann JSON/GSON an, hier findest du ein passendes Tutorial:
Android JSON Parsing with Gson Tutorial | Java Code Geeks

den so gebauten String übergibst du dann mit putExtra(...) und lädst ihn dir wieder und baust dann das Objekt.
 
In den meisten fällen sollte auch ausreichen das interface serilazible zu implementeieren ;)

lg. Dagobert
 
Besser wäre wohl noch Parcelable.
 
Ja, aber da muss man sich ja um alles selber kümmern (oder habe ich das falsch verstanden ?). Beim Seri muss man mal rein gar nichts machen auser implements.

lg. Dagobert
 
Noch schneller geht es, wenn man statt den beiden Activity zwei Fragmente benutzt. Man muss das Objekt dann nicht serialisieren.

Bevor man die Fragmente austauscht, speichert man das Objekt mit ein setter in einer Variable der dazugehörigen FragmentActivity. Mit der Methode getActivity() und ein bisschen casting geht das sehr schnell. In dem neuen Fragment holt man sich das Objekt mit einen getter zurück.
 
Code:
package irgendwas;

import *

public class Beispiel extends Activity{
static int test1;
static int test2;

//Deine onCreate{
setContentview(R.layout.main);
test1 = 1;
tesr2 = 2;
}
}
In der Zeiten Activity musst du nur noch:
Code:
int atest1 = Beispiel.test1
int atest2 = Beispiel.test2
 
Greenstar schrieb:
Code:
package irgendwas;

import *

public class Beispiel extends Activity{
static int test1;
static int test2;

//Deine onCreate{
setContentview(R.layout.main);
test1 = 1;
tesr2 = 2;
}
}
In der Zeiten Activity musst du nur noch:
Code:
int atest1 = Beispiel.test1
int atest2 = Beispiel.test2

aber schön ist das nicht sonderlich
 
Ich bin jetzt gerade dabei mich mal durch Parcelable durcharbeiten.
Denke nach dem was ich alles angeschaut habe ist das warscheinlich nicht die kürzeste aber die beste Lösung.

Ich danke allen die mitgeholfen haben.
 
Zurück
Oben Unten