Hello World
Im vorherigen Tutorial hatten wir bereits ein Projekt für das Hello World Beispiel erstellt.
Nun schauen wir uns mal das Projekt näher an.
Hello_World Klasse
Wir haben folgenden Code erhalten, der sich in der bereits erstellten "Hello_World.java" befindet.
Die Activity ist in diesem Fall unser Fenster, welches später unser Hello World ausgibt.
Wofür genau das Bundle dient, ist momentan noch unwichtig. Grundsätzlich kann man mithilfe des Bundles Daten zwischen Activities austauschen.
Unsere Klasse extended Activity, d.h. hier handelt es sich somit auch um eine Activity. Diese Klasse bietet eine Vielzahl an Methoden, die beispielsweise beim Erstellen, Pausieren, Stoppen oder beim "Zerstören" einer App, bzw. Activity aufgerufen werden.
Die Methode, die wir hier verwenden, greift im Falle des Erstellens der App, d.h. wir sind ganz am Anfang, rufen die App auf unserem Handy auf:
Denkbar wäre z.B. auch der automatische Download einer XML-Datei zu Beginn einer App, wenn wir einen Newsreader aufrufen.
In unserem einfachen Fall beschränken wir uns erst einmal darauf, dass wir beim Starten der App ein Hello World auf den Bildschirm schreiben.
Das Screendesign inklusive Ausgabe geschieht in diesem Fall nicht in dieser Methode selbst, sondern mithilfe dieses Codes:
Layouts in XML-Dateien
Jetzt wird es anfangs erst mal kompliziert. Dazu muss man wissen, dass ein Hauptbestandteil des Designs von Android Apps in XML geschieht. Dies bedeutet zunächst einmal eine Umstellung.
Natürlich kann man das Design auch programmatisch in der Java Klasse vornehmen. Allerdings wird man schnell die Vorzüge zu schätzen lernen, wenn man ein etwas aufwändigeres Design anstrebt.
Grundsätzlich werden hier einzelne Komponenten wie Layouts, Buttons, Textfelder (TextView), etc. in XML Tags definiert. Das werden wir uns gleich noch genauer anschauen.
Zunächst einmal zurück zu unserem Codestück. Mithilfe der setContentView Methode weisen wir der Activity Ihren Aufbau, also Ihr Design zu. Dies macht man üblicherweise in der onCreate Methode, d.h. wenn wir die App aufrufen, wird auch Ihr Design definiert.
Der R.layout.main Aufruf zeigt auf eine XML-Datei, in der das Layout der App definiert ist. Diese befindet sich im "res" Ordner, im Ordner "layout".
Der Übersichtlichkeit halber nochmals links aufgeführt.
Wir rufen in diesem Fall also die "main.xml" Datei auf.
main.xml
Wie sieht unser Design nun aus? Hier der Inhalt der main.xml:
Wir sehen zunächst die Angabe der XML-Version und der Codierung. Dies gehört an den Anfang jeder XML Datei.Genauso gehört die Angabe des Namensraumes in den ersten Tag einer jeden Layout-Datei. Das muss man einfach so hinnehmen. :)
Der erste Tag beinhaltet das Layout namens LinearLayout. Dieses Layout ermöglicht es uns, Objekte wie Textfelder oder Buttons einfach und schnell anzuordnen. Die Anordnung geschieht zeilen-, bzw. spaltenweise. Diese können wir in diesem Fall aus der Orientierung des LinearLayouts ablesen.
sagt uns, dass die Objekte vertikal, d.h. untereinander angeordnet werden. definiert die Höhe und Breite des Layouts. In diesem Fall wird dem Layout zugesichert, dass er das übergeordnete (parent) Layout in Höhe als auch Breite voll ausfüllen darf. Natürlich wäre auch eine Pixelangabe möglich.
In diesem LinearLayout-Tag befindet sich ein weiterer Tag namens TextView. Dieses ist unser Textfeld, in welches wir unser Hello World schreiben wollen. Hierin sehen wir eine weitere Variante, die Breite, bzw. Höhe anzugeben:
Die Angabe des Inhalts des Textfeldes geschieht auch hier in der XML-Datei selbst. Allerdings wird hier nicht direkt der Text angegeben, sondern auf eine weitere XML-Datei verwiesen (als wäre es am Anfang nicht schon kompliziert genug).
Ebenfalls möglich wäre natürlich die Angabe
strings.xml
Die entsprechende strings.xml Datei finden wir im Ordner "values". Diese beinhaltet folgenden Code:
Hiermit geben wir grob gesagt eine String-Ressource an, auf die im gesamten Projekt zugegriffen werden kann. Dank der Angabe
Ebenso sehen wir einen weiteren String, der "app_name" heißt. So wird auch die Überschrift der App lauten, die in der Leiste (Label) ganz oben erscheint.
Ok, lassen wir uns das bisherige nochmal durchgehen. Wir hatten ein Android Projekt erstellt, welche eine Activity beinhaltet. In dieser wird beim Erstellen der App in der onCreate Methode ein Layout mithilfe der setContentView Methode zugeordnet.
Dieses Layout wird in der XML-Datei namens main.xml definiert. Dort befinden sich ein LinearLayout, das die vertikale Ausrichtung von Objekten (hier Textfeld) vorschreibt. Dieses Textfeld wird mit dem Text "Hello World, Hello_World!" gefüllt, welches in einer weiteren XML-Datei Datei als Ressource definiert ist.
Android Manifest
Als letztes Puzzleteil fehlt noch das AndroidManifest.xml. Dort werden verschiedenste Sachen definiert, die für die Applikation gelten sollen. Dinge wie Berechtigungen (darf die App auf Kontakte, Internet, GPS, etc zugreifen) oder auch die Activities, die in dieser App existieren.
Da wir eine Activity benutzen, wird diese daher auch in der AndroidManifest angegeben. Hier die XML-Ansicht:
Hier sehen wir wieder das Package, unsere Version der App und einen "application"-Tag. In diesem Tag werden alle Activities eingefügt. Da wir nur eine Activity haben, steht hier auch nur eine drin. Würden wir noch weitere Activities erstellen, müssten wir diese hier auch angeben. Hier finden wir auch die Ressource "app_name", die wir zuvor in strings.xml gesehen haben.
Zusätzlich wird der Application noch ein Standard-Icon zugewiesen, damit die App ein hübsches Icon bekommt, wenn es in unserer App-Liste auftaucht.
Für die etwas eingängigere Darstellung der XML-Dateien bietet Eclipse hübsche Dialoge, auf die ich hier nicht weiter eingehen werde. Im Grunde dienen diese nur dazu, die entsprechenden Tags in die jeweilige XML Datei zu schreiben. Daher ist es grundsätzlich gut, wenn man die Struktur kennt. Ebenfalls ein schönes Feature ist die Voransicht bei Layouts.
Damit hätten wir erst einmal die Hello World App grob umrissen. Hier zeigt sich zunächst einmal die etwas kompliziertere Gangart mit XML-Dateien. Nach etwas Herumspielen mit Layouts wird man feststellen, dass das auch durchaus Vorteile bringt. Darauf werden wir in weiteren Tutorials eingehen.
Die fertige App :)
Schlussendlich sieht unsere App nun wie folgt auf dem Handy aus:
Herzlichen Glückwunsch zum ersten (wenn auch etwas komplizierten) Schritt zum App-Entwickler! :)
Jetzt heißt es, am Ball bleiben!
| Kommentare |
|
