![Einführung in die Android-Entwicklung Einführung in die Android-Entwicklung](/img/books/width167/3868991999_k.jpg)
Einführung in die Android-Entwicklung
von: Marko Gargenta
O'Reilly Verlag, 2012
ISBN: 9783868991994
Sprache: Deutsch
272 Seiten, Download: 5825 KB
Format: EPUB, PDF, auch als Online-Lesen
Die StatusActivity-Java-Klasse
Nachdem wir unser UI in XML entworfen haben, können wir zu Java übergehen. Erinnern Sie sich an das, was wir oben sagten: Android bietet zwei Möglichkeiten, Benutzerschnittstellen aufzubauen, erstens durch Deklaration mit XML, wie wir es gerade bis zu dem Punkt getrieben haben, bis zu dem es uns (aktuell) möglich war, und zweitens mit Java-Code. Wir sagten auch, dass es empfehlenswert ist, so weit wie möglich XML zu nutzen und dann zu Java zu wechseln.
Unsere Java-Klasse dafür ist StatusActivity.java
, und der Android-Projektassistent von Eclipse hat bereits ein Gerüst für diese Klasse erstellt. Die Klasse ist Teil des Java-Packages com.marakana.yamba1
und steckt deswegen auch in diesem Verzeichnis.
Den App-spezifischen Objekt- und Initialisierungscode erstellen
Bei allen Android-Grundbausteinen, Activities, Services, Broadcast-Receivern und Content-Providern beginnen Sie üblicherweise damit, dass Sie eine Klasse von der Klasse ableiten, die das Android-Framework stellt, und dann bestimmte vererbte Methoden überschreiben. In diesem Fall leiten wir eine Klasse von Androids Activity
-Klasse ab und überschreiben ihre onCreate()
-Methode. Wie Sie sich erinnern werden, haben Activities einen bestimmten Lebenszyklus (siehe „Der Lebenszyklus von Activities“) oder eine Zustandsmaschine, die sie durchlaufen. Wir als Entwickler können nicht steuern, in welchem Zustand die Activity ist, aber wir können bestimmen, was beim Übergang zu einem bestimmten Zustand passiert. In diesem Fall ist der Übergang, den wir überschreiben wollen, die onCreate()
-Methode, die der ActivityManager
des Systems aufruft, wenn die Activity erstellt wird (d.h., wenn sie vom startenden in den laufenden Zustand wechselt). Diese Art der Programmierung, die Ableitung von Systemklassen und das Ausfüllen der Lücken, bezeichnet man als Template-Method-Muster.
Unsere onCreate()
-Methode führt, neben den üblichen Haushaltsaufgaben, zwei wichtige Aufgaben aus, die die App nur einmal ganz zu Anfang ausführen muss: den Button einrichten, damit er auf Klick reagiert, und die Verbindung mit der Cloud herstellen.
Beachten Sie, dass onCreate()
ein Bundle
als Parameter erwartet. Das ist eine kleine Datenmenge, die einer Activity über den Intent übergeben werden kann, der sie anstöst. Die in einem Bundle
gelieferten Daten sind üblicherweise auf elementare Datentypen beschränkt. Komplexere Daten müssen speziell kodiert werden. In unserem Yamba-Beispiel werden wir das Bundle
in der Regel nicht nutzen, da wir diesen Mechanismus nicht benötigen.
Denken Sie daran, dass Sie beim Überschreiben einer Methode erst die Methode aufrufen sollten, die die ursprüngliche Oberklasse stellt. Deswegen steht hier der super.onCreate()
-Aufruf.
Haben Sie die Klasse des Frameworks erweitert, die erforderliche Methode überschrieben und darin die Methode auf super
aufgerufen, haben Sie eigentlich noch nichts erreicht: Ihr Code macht genau das Gleiche wie die Oberklasse. Aber jetzt gibt es eine Stelle, an der wir unseren eigenen Code einsetzen können.
Als Erstes laden wir in der onCreate()
-Methode einer Activity üblicherweise das UI aus der XML-Datei und generieren es im Java-Speicher. Anders gesagt: Wir schreiben etwas Java-Code, der Ihre XML-Layoutdatei öffnet, parst und für jedes Element im XML das entsprechende Java-Objekt im Speicher erstellt. Für jedes Attribut eines XML-Elements müsste dieser Code ein Attribut auf dem entsprechenden Java-Objekt setzen. Diesen Prozess bezeichnet man als inflating from XML, und er wird von einer Codezeile geleistet: setContentView(R.layout.status);
.
Erinnern Sie sich, dass die Klasse R
eine automatisch generierte Sammlung von Verweisen ist, die uns die Verbindung der Java-Welt mit dem XML und anderen Ressourcen im /res-Ordner erleichtert. R.layout.status
zeigt also auf die Datei /res/layout/status.xml.
Kurz gesagt: Die Methode setContentView()
macht ein ganze Menge. Sie liest die XML-Datei, parst sie, erstellt die den XML-Elementen entsprechenden Java-Objekte, setzt die Objekteigenschaften gemäß den XML-Attributen, richtet die Eltern-Kind-Verhältnisse zwischen den Objekten ein und baut den gesamten View auf. Am Ende dieser Zeile ist das Fenster bereit und kann auf den Bildschirm gezeichnet werden.
Ihre Objekte sind nicht die einzigen, die Methoden definieren und auf externe Stimuli reagieren. Androids Benutzerschnittstellenobjekte tun das auch. So können Sie Ihrem Button
sagen, dass er bestimmten Code ausführen soll, wenn er angeklickt wird. Dazu müssen Sie eine Methode namens onClick()
definieren und den Code dort einsetzen, wo er ausgeführt werden soll. Außerdem müssen Sie die setOnClickListener
-Methode auf dem Button
aufrufen. Sie übergeben this
als Argument an setOnClickListener
, weil Sie onClick()
in dieser Klasse definiert haben. Listing 6.3 zeigt die erste Version von StatusActivity.java mit einigen zusätzlichen Erläuterungen nach dem Code.
Listing 6.3 StatusActivity.java, Version 1
-
Soll die
StatusActivity
als Button-Listener dienen können, muss sie dasOnClickListener
-Interface implementieren. -
Sucht die aus dem XML-Layout generierten Views und weist sie Java-Variablen zu.
-
Registriert
this
beim Button (d.h. dieStatusActivity
) für Benachrichtigungen über Klicks. -
Stellt die Verbindung mit einem Onlinedienst her, der eine Twitter-API unterstützt. Hier haben wir Benutzername und Passwort fest vorgegeben.
-
Diese Methode wird aufgerufen, wenn der Button angeklickt wird. Sie ist Teil des
OnClickListener
-Interface. -
Führt den Webservice-API-Aufruf in die Cloud aus, um die Nachricht abzusenden.
Code kompilieren und Projekte erstellen: Dateien speichern
Haben Sie die Änderungen an Ihren Java- oder XML-Dateien vorgenommen, sollten Sie daran denken, sie zu speichern, bevor Sie fortfahren. Eclipse erstellt Ihr Projekt automatisch, wenn Sie File ? Save wählen oder Strg-S drücken. Es ist also wichtig, dass Sie Dateien speichern und darauf achten, dass Sie erst zu anderen Dateien übergehen, wenn die aktuelle Datei sauber ist. Dass Ihre Datei sauber ist, erkennen Sie daran, dass es in Ihrem Code keine kleinen roten x-Symbole gibt und das Projekt sie erfolgreich erstellt. Weil Java von XML abhängt und umgekehrt, wird das Auffinden der Fehler noch schwerer, wenn Sie zu einer anderen Datei wechseln, solange die aktuelle nicht fehlerfrei ist.
Java-Fehler sind üblicherweise leicht zu finden, da Sie das kleine rote x im Code gleich zu der Zeile führt, in der sich der Fehler befindet (siehe Abbildung 6.4). Lassen Sie den Mauszeiger unmittelbar über dem Fehler schweben, sagt Ihnen Eclipse, welcher Fehler es ist, und schlägt Ihnen einige mögliche Reparaturen vor. ...
Kategorien
Kategorien
Service
Info/Kontakt