Android Entwicklung: Datenübergabe zwischen Klassen / Activities

Um Daten wie z.B. einen String zwischen zwei Activities zu übergeben muss man ein bisschen Aufwand treiben. Bei diesem Beispiel wird ein String von einer Activity zu einer anderen übergeben. Der Quelltext hier gehört erstmal in die Quellklasse und mindestens der „startActivity(in);“ muss in einen onClick() oder eine andere auslösende Methode geschrieben werden – sonst kann man sie ja nicht starten.

String text = "blabla";

Wir haben nun den String mit dem Variablennamen text. Diesen wollen wir übergeben. Dazu muss man ein Bundle anlegen. Das muss man sich wie einen Korb vorstellen in den man Variablen ablegt.

Bundle korb = new Bundle();
korb.putString("datenpaket1", text);

Nun wurde der String text in unser Bundle mit dem Namen korb gelegt. Das „datenpaket1“ ist der Name unter dem sich die Variable „auf der anderen Seite“ wieder ansprechen lässt. Nun müssen wir noch einen Intent erstellen – über diesen lässt sich eine andere Activity aufrufen. Anders als aber bislang wohl gewohnt macht man nicht einfach einen Intent dem man nur die neue Activity in der Klammer mitgibt. Wenn man Daten übergeben will, muss man auch die eigene Klasse mit geben um einen Bezug zu haben:

Intent in = new Intent(AktuelleKlasse.this, AndereKlasse.class);
in.putExtras(korb);

Zusätzlich wurde an den Intent nun noch als Extra das Bundle korb angeheftet. Es wird beim Aufruf des Intents – der die andere Activity startet – mitgegeben:

startActivity(in);

Damit haben wir in der Quellklasse alles erledigt. Wechseln wir nun in die Zielklasse.

Bundle zielkorb = getIntent().getExtras();
String text2 = zielkorb.getString("datenpaket1");

Hier wird wiederum ein Bundle erstellt das die Daten mit angehängtem Extra übernimmt. Dann einfach noch eine Stringvariable nehmen oder erstellen und das Bundle mit .getString und dem Namen des Paketes ansprechen den wir zuvor in der anderen Klasse angelegt haben.

Falls der Weg andersrum gewünscht ist, also nicht dass man eine andere Activity aufruft und Daten übergibt, sondern dass man eine andere Activity temporär aufruft um dann Daten von dort zurück zu bekommen, dann hilft folgender Artikel: Android Entwicklung: Aufruf Activity für Rückgabewert

  1. 9. September 2012
Du musst angemeldet sein, um einen Kommentar abzugeben.
%d Bloggern gefällt das: