Objekt-XML für Android
XML wurde bereits zuvor in Lektion (5.2.) kurz erklärt.
Wir hatte schon gelernt, wie Zeichenfolgen aus einer »strings.xml«-Datei verwendet werden können.
Im Projektordner kann auch eine »main.xml«-Datei angelegt werden, die verschiedene Objekte definieren kann.
In der folgenden Datei wird ein linearer Behälter beschrieben, der ein Textfeld enthält.
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"><TextView android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Fernsehpublikum" /></LinearLayout>
Im Java -Quelltext ist ein Bezug auf die Datei durch Angabe von »R« gefolgt von ihrem Verzeichnis »layout« und dem Dateinamen »main« möglich. (Die Datei »main.xml« wurde von dem in Lektion 10.0. angepaßten Skript »50_run.cmd« in das Verzeichnis »src\res\layout« im Projektordner kopiert.)
Aus Sicht der Programmiersprache Java sind »R« und »R.layout« Klassen, während »main« ein int-Feld der Klasse »R.layout« ist. Das Werkzeug »aapt« hat automatisch Quelltext aus der Datei »main.xml« erzeugt, in welchem jene Klassen und Felder deklariert werden.
Main.java
package com.example;
public class Main extends android.app.Activity
{@java.lang.Override public void onCreate( final android.os.Bundle bundle )
{ super.onCreate( bundle );
setContentView( R.layout.main ); }}
Ein Vorteil der Verwendung von XML -Dateien zur Definition und Konfiguration von Objekten besteht darin, daß diese von GUI-Editoren gelesen und wieder geschrieben werden können, was bei Java -Quelltext nicht so einfach möglich ist.
Zeichenfolgenbezüge
Zeichenfolgen können auch durch Bezug auf eine Zeichenfolgendatei angegeben werden. Ein Vorteil der Verwendung von Zeichenfolgendateien in XML besteht also darin, daß die darin definierten Zeichenfolgen in anderen XML -Dateien verwendet werden können.
strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Fernsehpublikum</string>
</resources>main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"><TextView android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello" /></LinearLayout>
Übungsaufgabe
Bringen Sie das Beispiel zum Laufen! – Dies ist nicht ganz einfach, da an einigen Stellen kleine Anpassungen nötig sind, aber gerade das soll hier geübt werden.