String-XML für Android (String-XML für Android), Lektion, Seite 723610
https://www.purl.org/stefan_ram/pub/string-xml_android (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
Android-Entwicklung

Zeichenfolgen-XML  für Android 

Manchmal wird es gewünscht, Zeichenfolgen außerhalb des Java -Quelltextes aufzubewahren. Dies erleichtert es möglicherweise, Zeichenfolgen zu überarbeiten, wie dies etwa bei der Lokalisierung (Übersetzung) eines Programms notwendig werden kann.

Anpassungen eines Skripts

In der Datei »50_run.cmd« ist das alte Fragment »old« durch das neue Fragment »new« zu ersetzen.

old
@MKDIR "%MAIN%"
@IF ERRORLEVEL 1 GOTO OUT
@MKDIR "%PROJECT%\obj"
@MKDIR "%PROJECT%\lib"
@MKDIR "%PROJECT%\bin"
@MKDIR "%PROJECT%\src\res"
@MKDIR "%SOURCE%\com\example"
@COPY AndroidManifest.xml "%MAIN%">nul:
new
@DEL /F/S/Q project
@RMDIR /S/Q project
@MKDIR "%PROJECT%"
IF ERRORLEVEL 1 GOTO OUT
@MKDIR "%PROJECT%\src"
@MKDIR "%MAIN%"
@MKDIR "%PROJECT%\obj"
@MKDIR "%PROJECT%\lib"
@MKDIR "%PROJECT%\bin"
@MKDIR "%PROJECT%\src\res"
@MKDIR "%PROJECT%\src\res\anim"
@MKDIR "%PROJECT%\src\res\animator"
@MKDIR "%PROJECT%\src\res\color"
@MKDIR "%PROJECT%\src\res\values"
@MKDIR "%PROJECT%\src\res\layout"
@MKDIR "%PROJECT%\src\res\menu"
@MKDIR "%PROJECT%\src\res\raw"
@MKDIR "%PROJECT%\src\res\xml"
@MKDIR "%PROJECT%\src\res\drawable"
@MKDIR "%PROJECT%\src\assets"
@MKDIR "%SOURCE%\com\example"
@COPY AndroidManifest.xml "%MAIN%">nul:
@COPY strings.xml "%PROJECT%\src\res\values\"
@COPY main.xml "%PROJECT%\src\res\layout\"
@%SDK%\build-tools\aapt.exe ^
package ^
-v ^
-f ^
-m ^
-S %PROJECT%\src\res ^
-J %PROJECT%\src\main\java ^
-M %PROJECT%\src\main\AndroidManifest.xml ^
-I %SDK%\platforms\%PLATFORM%\android.jar

Das Skript kopiert unsere Datei aus dem Hauptverzeichnis in einen Projektordner, der die vom Android -SDK erwartete Struktur aufweist.

Der zusätzliche Aufruf von »aapt.exe« erzeugt nun die Datei »R.java«, mit Informationen zu den angegebenen Zeichenfolgen. Der im Skript schon vorhandene spätere Aufruf von »aapt.exe« integriert diese Resourcendatei dann in das Produkt.

Hinzufügen der XML-Dateien

XML  wurde bereits zuvor in Lektion (5.2.) kurz erklärt.

Es sind noch die beiden folgenden Dateien anzulegen (im selben Verzeichnis, in dem sich auch »50_run.cmd« befindet).

Die Datei »string.xml« enthält benannte Zeichenfolgen. In ihr wird eine Zuordnung des Namens »hello« zur Zeichenfolge »Hello!« festgelegt.

Die Datei »main.xml« ist in dieser Lektion nur ein Platzhalter, der angelegt wird, weil das Skript eine Datei »main.xml« erwartet. Diese Datei »main.xml« wird aber erst in einer späteren Lektion verwendet und erklärt werden.

Vor »<?xml« darf nichts in einer XML-Datei stehen!

strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello!</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>

Verwendung der benannten Zeichenfolgen in einem XML -Dokument

Der folgende Auszug aus »main.xml« zeigt, wie die benannte Zeichenfolge in einem XML-Dokument verwendet werden kann, um einen Attributwert festzulegen. Der Attributwert ist »Hello!«, entsprechend der Festlegung des Namens »hello« in der Datei »strings.xml«.

Auszug
android:text="@string/hello"

Verwendung der benannten Zeichenfolgen in einem Java -Programm

Eine Zeichenfolge, welcher in der XML-Datei »strings.xml« der Namen »X « gegeben wurde, kann nun in einem Java -Programm als »Main.this.activity.getString( R.string.X  )« ausgedrückt werden. In dem folgenden Programm wird so die Zeichenfolge »Hello!« als Text eines Textfeldes angezeigt.

MainActivity.java

package com.example;

public final class MainActivity extends android.app.Activity
{ final android.app.Activity activity = this;
final android.content.Context context = this;

@java.lang.Override protected final void onCreate
( final android.os.Bundle bundle )
{ super.onCreate( bundle );

final android.widget.TextView textView
= new android.widget.TextView( MainActivity.this.context );

textView.setText( MainActivity.this.activity.getString( R.string.hello ) );

MainActivity.this.activity.setContentView( textView ); }}

Quellen

https://developer.android.com/guide/topics/resources/providing-resources.html

http://webcache.googleusercontent.com/search?q=cache:developer.android.com/guide/topics/resources/string-resource.html

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram723610 stefan_ram:723610 String-XML für Android Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd723610, slrprddef723610, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/string-xml_android