Android-Programmierung GUI: strings.xml

Willemers Informatik-Ecke

Das einzig seriöse Javabuch :-) Mehr...

.. enthält ein Kapitel zur Android-Programmierung.
Bei Amazon bestellen
2016-04-19
Auf diesen Seiten halte ich meine Erfahrungen im Bereich der Android-Programmierung fest, um sie später nachschlagen zu können. Die Ausführungen sind kein vollständiger Kurs, manchmal nur Notizen, aber vielleicht anderen hilfreich.

Strings gehören nach strings.xml

Im Verzeichnis values liegt die Datei strings.xml. Hier werden alle Texte abgelegt.

Ein typischer Eintrag in der Datei strings.xml sieht so aus:

<string name="newgame">New Game</string>

Mehrsprachigkeit

Um eine deutschsprachige Version zu erzeugen, legt man ein Verzeichnis values-de an, kopiert die Datei strings.xml und passt die Inhalte an. Im Verzeichnis values-de wird der Eintrag so angepasst:
<string name="newgame">Neues Spiel</string>
Ist das Android-Handy deutschsprachig, wird automatisch die zweite Variante gezogen und das Programm spricht mit dem Anwender deutsch.

Anlegen der deutschen strings.xml im Android-Studio

Wenn man das Android-Studio verwendet, kann man das Verzeichnis nicht etwa anlegen, sondern muss das Verzeichnis values mit der rechten Maustaste anklicken. Im Menü muss New | Values resource file angeklickt werden. Es erscheint ein Dialog, in dem als File-Name strings.xml angegeben wird und in dem der Eintrag Locale in die Choosen qualifiers übernommen wird. Nun können Sie Deutschland ausgewählen. Daraufhin erscheint eine zweite Datei strings.xml im Verzeichnis values, hinter der in grauen Zeichen de vermerkt ist.

Strings mit Platzhaltern

Analog zum printf, das mancher aus der Sprache C kennt, können Format-Strings in der strings.xml definiert werden, die vom Programm zur Laufzeit mit Werten gefüllt werden.
<string name="score"> %1$d s. hits: %2$d - marks %3$d</string>
Hinter den Prozentzeichen steht die Nummer des Parameters von getString. Hinter dem Dollarzeichen steht der Typ. Das d steht für dezimal. Ein s steht für String.

Im Source-Code werden der Methode getString in weiteren Parametern die Werte übergeben, die an den Platzhaltern dargestellt werden sollen.

String str = getRessources().getString(R.string.score, zeit, getHits(), getMarkierungen());

Homepage Android (C) Copyright 2015, 2016 Arnold Willemer