Java Reference
In-Depth Information
sein wird auch einen neuen Service) zu starten. Man unterscheidet explizite und implizite
Intents. Ein expliziter Intent gibt direkt die Klasse in Form eines Class-Objekts der zu star-
tenden Activity an. Wenn die startende und die zu startende Activity zur selben Anwendung
ge hören, können explizite Intents verwendet werden. Bei impliziten Intents wird statt einer
Klasse eine Action in Form eines Strings angegeben. Dieser Action-String muss dann aber
als Intent-Filter für die zu startende Activity in der AndroidManifest.xml-Datei angegeben
sein. Implizite Intents können zum Starten von Activities (und Services) derselben oder
auch anderer Anwendungen eingesetzt werden. Sowohl in expliziten als auch in impliziten
Intents können anwendungsabhängige Daten gespeichert und wieder ausgelesen werden.
Für das im Folgenden zu realisierende Beispiel übergeben wir im Intent-Objekt den einge-
tippten Text.
Zur Realisierung des beschriebenen Vorhabens sind drei Dinge notwendig:
! eine weitere XML-Datei zur Festlegung der Oberfl äche für die neue Activity sowie dadurch
eventuell notwendige Erweiterungen in der Datei strings.xml,
! Änderungen an der Klasse Activity1 zum Starten der neuen Activity sowie die Klasse für
die neue Activity
! und schließlich ein zusätzlicher Eintrag für die neue Activity in der Datei AndroidMani-
fest.xml.
Die neue XML-Layout-Datei sieht sehr ähnlich aus wie main.xml. Ihre Wiedergabe sowie die
Ergänzungen in strings.xml ersparen wir uns. Die Methode clicked der Klasse Activity1
wird so verä ndert, dass der in das Textfeld eingetippte Text nicht in das Ausgabefeld
geschrieben, sondern in einem neu erzeugten expliziten Intent-Objekt unter einem frei
gewählten Namen gespeichert wird. Das Intent-Objekt wird der Methode startActivity über-
geben, womit die neue Aktivität gestartet wird. Der Code der Methode clicked aus Listing
16.4 ändert sich wie folgt:
public void clicked(View view)
{
EditText editText = (EditText) findViewById(R.id.input);
String input = editText.getText().toString();
Intent intent = new Intent(this, Activity2.class);
intent.putExtra(MESSAGE, input);
startActivity(intent);
}
MESSAGE ist eine öff entliche, frei gewählte String-Konstante, die zusätzlich in der Klasse
Activity1 defi niert wurde.
Die Klasse Activity2 ist in Listing 16.5 zu fi nden.
Listing 16.5 Klasse Activity2
package javacomp.android.activities;
import ...
public class Activity2 extends Activity
{
protected void onCreate(Bundle savedInstanceState)
{
 
Search WWH ::




Custom Search