Moderator, Bürokraten, Checkuser-Berechtigte, developer, emailconfirmed, Oberflächenadministratoren, Oversighter, Administratoren
11.008
Bearbeitungen
(Die Seite wurde neu angelegt: „Das funktioniert für den Button ausgezeichnet, nicht aber für das Textfeld, da der Nutzer ggf. etwas längeres eingeben wird. Es wäre schön, wenn der ungen…“) |
(Die Seite wurde neu angelegt: „Fahre mit der nächsten Lektion fort, um zu lernen wie auf einen Klick auf einen Button reagiert, der Inhalt des Textfeldes ausgelesen oder eine andere Activit…“) |
||
(15 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
<languages /> | <languages/> | ||
[[Datei:Viewgroup.png|thumb|Illustration, wie ViewGroup Objekte Zweige im Layout bilden und View Objekte beinhalten.]] | [[Datei:Viewgroup.png|thumb|Illustration, wie ViewGroup Objekte Zweige im Layout bilden und View Objekte beinhalten.]] | ||
In dieser Übung erstellst du ein Layout in XML, welches ein Textfeld und ein Button enthält. In der darauffolgenden Übung wird deine App auf einen Button-Klick reagieren und den Inhalt des Textfeldes an eine andere Aktivität senden. | In dieser Übung erstellst du ein Layout in XML, welches ein Textfeld und ein Button enthält. In der darauffolgenden Übung wird deine App auf einen Button-Klick reagieren und den Inhalt des Textfeldes an eine andere Aktivität senden. | ||
Zeile 121: | Zeile 121: | ||
Das funktioniert für den Button ausgezeichnet, nicht aber für das Textfeld, da der Nutzer ggf. etwas längeres eingeben wird. Es wäre schön, wenn der ungenutzte Platz für die Breite des Textfeldes verwendet wird. Im <code>LinearLayout</code> kannst du dies mit der weight-Eigenschaft erreichen, unter Verwendung des [http://developer.android.com/reference/android/widget/LinearLayout.LayoutParams.html#weight <code>android:layout_weight</code>] Attributes. | Das funktioniert für den Button ausgezeichnet, nicht aber für das Textfeld, da der Nutzer ggf. etwas längeres eingeben wird. Es wäre schön, wenn der ungenutzte Platz für die Breite des Textfeldes verwendet wird. Im <code>LinearLayout</code> kannst du dies mit der weight-Eigenschaft erreichen, unter Verwendung des [http://developer.android.com/reference/android/widget/LinearLayout.LayoutParams.html#weight <code>android:layout_weight</code>] Attributes. | ||
Der weight-Wert ist eine Zahl, welche festlegt, wie viel verfügbaren Platz jedes View verwenden soll, relativ zu der Menge die andere Views verwenden. Das funktioniert ähnlich wie bei einem Getränke-Rezept: "2 Teile Soda, 1 Teil Sirup" bedeutet, 2/3 vom Getränk ist Soda. Gibst du beispielsweise einem View ein Gewicht von 2 und einem anderen ein Gewicht von 1, ist die Summe 3, sodass das erste View 2/3 vom verfügbaren Platz und das Zweite den Rest verwenden wird. Wenn du ein drittes View mit einem Gewicht von 1 hinzufügst, wird das erste View (mit dem Gewicht 2) nun die Hälfte des verfügbaren Platzes und die verbleibenden anderen beiden Views jeweils ein 1/4 verwenden. | |||
Das Standard-Gewicht von allen Views ist 0, was bedeutet, wenn du einem View einen Wert größer 0 gibst, wird es den kompletten verfügbaren Platz verwenden, nachdem alle Elemente den Platz bekommen haben, den sie mindestens benötigen. | |||
== | == Das Eingabefeld die Komplette Bildschirmbreite füllen lassen == | ||
Um den verbleibenden Platz in deinem Layout mit dem <code>EditText</code> Element zu füllen, musst du folgendes tun: | |||
# | # Weise dem <code>layout_weight</code> Attribut des <code><EditText></code> Elements in der <code>activity_my.xml</code> Datei den Wert <code>1</code> zu. | ||
# | # Weise außerdem dem <code>layout_width</code> Attribut des <code><EditText></code> Elements den Wert <code>0dp</code> zu. | ||
#: ''res/layout/activity_my.xml'' | #: ''res/layout/activity_my.xml'' | ||
#: <syntaxhighlight lang="xml"> | #: <syntaxhighlight lang="xml"> | ||
Zeile 137: | Zeile 137: | ||
... /> | ... /> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Um bei der Verwendung von weight die Effizienz des Layouts zu verbessern, solltest du die Breite von <code>EditText</code> auf 0 setzen (0do). Das Setzen einer Breite von 0 verbessert die Leistungsfähigkeit, weil bei der Verwendung von <code>"wrap_content"</code> als Breite das System die Breite berechnen muss, welche letztlich irrelevant ist, da die Breite erneut in Bezug auf das Gewicht berechnet werden muss, um den verbleibenden Platz auszufüllen. | |||
So sollte deine komplette <code>activity_my.xml</code> Layout-Datei nun aussehen: | |||
''res/layout/activity_my.xml'' | ''res/layout/activity_my.xml'' | ||
<syntaxhighlight lang="xml"> | <syntaxhighlight lang="xml"> | ||
Zeile 160: | Zeile 160: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== | == Starte deine App == | ||
Das Layout wird von der Standard-<code>Activity</code> Klasse angewendet, welche durch die SDK Tools beim Erstellen des Projektes angelegt wurde. Starte die App um das Ergebnis zu sehen: | |||
# | # Klicke '''Start''' in der Android Studio Toolbar. | ||
# | # Oder wechsle in einer Kommandozeile zu dem Stammverzeichnis deines Android Projektes und führe folgende Befehle aus: | ||
#: <code>ant debug</code> | #: <code>ant debug</code> | ||
#: <code>adb install bin/MyFirstApp-debug.apk</code> | #: <code>adb install bin/MyFirstApp-debug.apk</code> | ||
Fahre mit der nächsten Lektion fort, um zu lernen wie auf einen Klick auf einen Button reagiert, der Inhalt des Textfeldes ausgelesen oder eine andere Activity gestartet werden kann und mehr. | |||
{{TNT|Android Training/Attribution}} | |||
{{Android Training/ |
Bearbeitungen