Java Reference
In-Depth Information
die Ausführung wieder erfolgreich ausführbar ist, muss dieser ACTION-String als Intent-
Filter in der AndroidManifest.xml-Datei spezifi ziert werden. Die Zeile
<activity android:name=".Activity2"></activity>
sollte durch
<activity android:name=".Activity2">
<intent-filter>
<action android:name="javacomp.android.activities.ACTION"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
ersetzt werden. Der in <action> angegebene Name muss der String sein, der in der Klasse
Activity1 als Konstante ACTION defi niert wird. Nehmen Sie bitte einfach hin, dass das Ele-
ment <category> notwendig ist und die hier angegebene Variante funktioniert. Lesen Sie bei
weiterem Interesse in der Android-Dokumentation die Bedeutung der Kategorien nach.
Übrigens kann ein <activity>-Element beliebig viele Elemente der Art <intent-fi lter> enthal-
ten (ein Intent-Filter auch mehrfach <action> und <category>). Eine Activity kann somit als
eine Art Hauptklasse oder Einstiegsklasse der gesamten Anwendung defi niert werden wie
Activity1 und zusätzlich können weitere Actions angegeben werden, mit der die Activity
gestartet werden kann.
Wenn der in einem impliziten Intent angegebene Action-String in keiner Anwendung als
Intent-Filter defi niert ist, wir der Aufruf der Methode startActivity eine Ausnahme, so dass
die Anwendung zwangsweise beendet wird. Wenn es hingegen mehr als eine Activity gibt,
in deren Intent-Filter der Action-String vorkommt, zeigt Android einen Dialog an, über den
der Benutzer die entsprechende Activity auswählen kann. Dabei kann er zusätzlich ange-
ben, dass seine Wahl für spätere Fälle gemerkt und später ohne Zutun des Benutzers wie-
derholt wird.
1 6 .5 .3 Activity mit Resultat
Eine typische Anwendung ist die Aktivierung einer neuen Activity A2 durch eine Activity
A1, um etwas in A2 auszuwählen oder einzugeben, was dann in A1 benutzt wird. In einem
solchen Fall muss eine Activity mit Resultat eingesetzt werden. Zur Demonstration ver-
ä ndern wir unsere Anwendung so, dass in Activity2 der aus Activity1 übernommene String,
der ja vorsorglich schon in einem Eingabefeld angezeigt wird, durch die Benutzerin verä n-
dert oder ergänzt werden kann. Wenn die Benutzerin dann auf einen Button der Activity2
drückt, um diese Activity zu beenden, soll die dann wieder auf dem Bildschirm erschei-
nende Activity1 den in Activity2 verä nderten String in ihrem Ausgabefeld (in Bild 16.7 das
Feld unter dem Absenden-Button) anzeigen. Zur Realisierung sind Änderungen in beiden
Klassen Activity1 und Activity2 nötig.
In der Methode clicked der Klasse Activity1 wird zuerst die Zeile
startActivity(intent);
durch
startActivityForResult(intent, REQUEST_CODE);
 
Search WWH ::




Custom Search