Hello World mit XML Layout

Das Hello World welches wir gemacht haben basiert auf einem pragmatischen Layout. Das heisst, das Layout wurde direkt im Code erstellt. Wer schon einmal eine grössere Applikation gemacht hat, weiss dass dies eine Todesurteil sein kann. Auch die kleinsten Änderungen bewirken immer ein komplett neuer Builds. Sogar Übersetzungen ziehen immer eine Anpassung im Code mit sich, obwohl dies eigentlich nicht nötigt wäre.

Somit ist es sinnvoll, gleich von Anfang an das UI in einem XML Layout abzulegen. Die folgenden Beispiele basieren auf dem Hello World Tutorial, welches hier zu finden ist.

Android XML based Layout Files

Android bietet die Möglichkeit an, gesamte Layouts in XML Files zu erstellen. Dies sollte auch immer so gemacht werden. Ein Beispiel eines Layouts könnte so aussehen:

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:text="@string/hello"/>


AttributBeschreibung
xmlns:androidNamespace Deklaration welche den Android Tools mitteilt was wir genau referenzeiren wollen. Jedes Android Layout FIle braucht dieses Attribut im äussersten Tag.
android:layout_widthDie Breite, welche die aktuelle View auf dem Layout verwenden soll. Da dies die einzige View ist, wollen wir somit die gesamte Breite (fill_parent).
android:layout_heightAnalog zur Breite, nur das hier die Höhe gemeint ist.
android:textText der angezeigt werden soll. In diesem Beispiel verwenden wir eine Ressource anstatt einem hardcodierten String. Der hello-String ist im File res/values/strings.xml definiert. Diese ist der meistverwendete Ansatz, denn wir müssen das Layout nicht anpassen wenn die Texte ändern. Zudem erleichtert es das Erstellen von Mehrsprachigen Anwendungen.

Beispiel anpassen

Diese XML Layout Files sind alle im Projekt unter res/layout/ abgelegt. Der Ordner res (resources) enthält alle Assets, welche keinen Code beinhalten. Dies sind u.A. Layout Files, Bilder, Sounds etc.

Eclipse hat beim Erstellen des neuen Projekts automatisch ein Layout File erstellt: main.xml. Dieses File wurde bis jetzt ignoriert, das wir das Layout „programmiert“ haben.

Um nun unsere Applikation umzubauen öffnen wir das File main.xml. Um die Source zu sehen: Rechtsklick auf Open withText Editor. Nun ersetzen wir den Inhalt mit folgendem Code:

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:text="@string/hello"/>

Anschliessend öffnen wir das File strings.xml im Ordner res/values. Der Inhalt dieses Files ändern wir wie folgt (die Texte können natürlich angepasst werden):

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">Hello, Android! I am a string resource!</string>
    <string name="app_name">Hello, Android</string>
</resources>

Zum Schluss müssen wir noch unsere HelloAndroid.java Klasse anpassen, damit dies das Layout auch vom XML bezieht. Den Code muss wie folgt geändert werden:

package com.example.helloandroid;
 
import android.app.Activity;
import android.os.Bundle;
 
public class HelloAndroid extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}

Wir referenzieren nun mit setContentView() auf unser main.xml. In der Klasse R ist dieses Layout bereits definiert. Wenn man nun die Anwendung startet werden die Texte im XML angezeigt. Diese können nun auch geändert werden ohne dass die Anwendung neu kompiliert werden muss.

android/hello_world_mit_xml_layout.txt · Zuletzt geändert: 27.12.2013 19:46 (Externe Bearbeitung)
Nach oben
chimeric.de = chi`s home Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0