Diskussion:Android Training/Eine einfache Benutzeroberfläche erstellen: Unterschied zwischen den Versionen

keine Bearbeitungszusammenfassung
(Die Seite wurde neu angelegt: „The graphical user interface for an Android app is built using a hierarchy of View and ViewGroup objects. View objects are usually UI widgets such as a button …“)
 
Keine Bearbeitungszusammenfassung
Zeile 73: Zeile 73:
Das +-Symbol wird nur benötigt, wenn du das erste mal die Ressourcen-ID verwendest. Das zeigt dem SDK, das die Ressourcen-ID erstellt werden muss. Alos, wenn die App kompiliert ist, die SDK Tools nutzen den ID-Wert, also edit_message, um einen neuen identifier in der Projektdatei gen/R.java zu erstellen, welche dann mit dem EditText Element verknüpft ist. Wenn die Ressourcen-ID einmal erstellt ist, benötigt man für weitere Zugriffe kein +-Symbol mehr.
Das +-Symbol wird nur benötigt, wenn du das erste mal die Ressourcen-ID verwendest. Das zeigt dem SDK, das die Ressourcen-ID erstellt werden muss. Alos, wenn die App kompiliert ist, die SDK Tools nutzen den ID-Wert, also edit_message, um einen neuen identifier in der Projektdatei gen/R.java zu erstellen, welche dann mit dem EditText Element verknüpft ist. Wenn die Ressourcen-ID einmal erstellt ist, benötigt man für weitere Zugriffe kein +-Symbol mehr.
#; <nowiki>android:layout_width and android:layout_height</nowiki>
#; <nowiki>android:layout_width and android:layout_height</nowiki>
Anstelle von fest definierten Werten für die Höhe (height) und die Breite (width), definiert "wrap_content" dass das view exakt so groß ist wie der Inhalt den dieses view enthält. Wenn du danstelle "fill_parent" verwendest, dann wird das EditText Element den kompletten Bildschirm ausfüllen, weil es nicht der Größe des übergeordneten LinearLayout entspricht. Für mehr Informationen siehe das XML Layout Handbuch.
#; <nowiki>android:hint</nowiki>
Dies ist ein Standardwert, der angezeigt wird, wenn das Textfeld leer ist. Anstelle eines fest vergebenen Wertes, der "@string/edit_message"-Wert verlinkt zu einer string-Resourcce, welche in einer seperaten Datei definiert ist. Weil dieser Wert auf eine existierende Resourcce verweist, benötigt es nicht das +-Symbol. Jedoch wirst du beim Kompilieren in dieser Form einen Fehler bekommen, da die Resourcce noch nicht definiert wurde.Das wirst du im nächsten Abschnitt fixen.
== Add string resourcces ==
When you need to add text in the user interface, you should always specify each string of text in a resource file. String resources allow you to maintain a single location for all string values, which makes it easier to find and update text. Externalizing the strings also allows you to localize your app to different languages by providing alternative definitions for each string.
By default, your Android project includes a string resource file at res/values/strings.xml. Open this file, delete the existing "hello" string, and add one for the "edit_message" string used by the <EditText> element.
While you’re in this file, also add a string for the button you’ll soon add, called "button_send".
The result for strings.xml looks like this:
<source lang="xml">
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">My First App</string>
    <string name="edit_message">Enter a message</string>
    <string name="button_send">Send</string>
</resources>
</source>
For more information about using string resources to localize your app for several languages, see the [http://developer.android.com/training/basics/supporting-devices/index.html Supporting Various Devices] class.
Wenn du ein Text zur Bedienoberfläche hinzufügen willst, solltest du jeden Text in eine Resourccendatei definieren. Eine String Resourccendatei erlaubt es dir einen Ort für alle Textwerte zu definieren, was das Aktualisieren eines Textes erleichtert. Auslagerung von Textwerten in externe Dateien erlaubt es dir außerdem verschiedene Sprachen zu deiner App hinzuzufügen, indem du für jeden String verschiedene Werte definierst.
Das Androidprojekt enthält eine Standard-Stringresourcceendatei in res/values/strings.xml. Öffne diese Datei, lösche das bereits vorhadene "hello" und füge eines für den "edit_message" string, welche vom <EditText>-Element verwendet wird, hinzu.
Wenn wir gerade in der Datei sind, füge außerdem noch den string für den Button hinzu, welchen du später hinzufügen wirst. Nenne diesen Wert "button_send".
Das Ergebnis von der strings.xml sollte ähnlich diesem aussehen:
<source lang="xml">
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">My First App</string>
    <string name="edit_message">Enter a message</string>
    <string name="button_send">Send</string>
</resources>
</source>
Für mehr Informationen über das Verwenden von Stringresourcces für Mulilanguage Support, siehe [http://developer.android.com/training/basics/supporting-devices/index.html Supporting Various Devices]
== Add a button ==
Now add a [http://developer.android.com/reference/android/widget/Button.html <Button>] to the layout, immediately following the [http://developer.android.com/reference/android/widget/EditText.html <EditText>] element:
<source lang="xml">
<Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/button_send" />
</source>
The height and width are set to "wrap_content" so the button is only as big as necessary to fit the button's text. This button doesn't need the android:id attribute, because it won't be referenced from the activity code.
Nun füge einen [http://developer.android.com/reference/android/widget/Button.html <Button>] zu dem Layout hinzu, direkt nach dem <EditText>-Element:
<source lang="xml">
<Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/button_send" />
</source>
Die Höhe (height) und die Weite (width) sind auf "wrap_content" gesetzt, so ist der Button nur so groß, wie benötigt wird, das der Buttontext angezeigt werden kann. Dieser Button benötigt nicht das Attribut "android:id", weil es von keiner anderen activity angesprochen werden muss.
11.008

Bearbeitungen