2015-12-13 1 views
10

I Android Daten verwenden Bindung, die funktioniert gut:Android Data Binding Fehlerwert/Standardwert

<TextView 
android:text="@{ee.Name}" 
... 

Aber wenn ich, dass der Android-Studio-Designer zeigt keinen Text. Ohne Text kann ich den TextView überhaupt nicht sehen. Was verständlich ist, weil ich die Daten noch nicht gebunden habe. Gibt es so etwas wie einen Fallback-Wert oder einen Standardwert, der angezeigt werden kann, bis echte Daten vorliegen?

Antwort

15

Sie sollten die Data Binding Guide auf der Android-Entwickler-Website veröffentlicht lesen. Der letzte Abschnitt des Dokuments, Android Studio Support for Data Binding, erläutert, wie Sie einen Platzhalter verwenden können, der Ihnen während der Entwurfsphase helfen kann. Es ist sehr einfach:

<TextView android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@{user.firstName, default=Placeholder}"/> 

Wenn Sie mit Leerzeichen haben Text wollen als Platzhalter Sie Apostrophe (') verwenden können, zurück Anführungszeichen (`) oder &quot;

android:text='@{user.firstName, default="Placeholder text"}' 
android:text="@{user.firstName, default=`Placeholder text`}" 
android:text="@{user.firstName, default=&quot;Placeholder text&quot;}" 
+1

Danke, das ist genau das, was ich gesucht habe. Ich habe diesen Artikel gelesen, den du erwähnt hast, aber das habe ich nicht gesehen. – ehmunnehm

+0

Eine Sache, die ich nicht herausfinden konnte ist, wie man das auf Farben verwendet. Etwas wie: 'android: background = '@ {ee.BackColor, default =" color/colorPrimary "}'' -> 'Konnte" color/colorPrimary "nicht in ein Zeichen umwandeln". Gibt es eine Möglichkeit, das zu tun? – ehmunnehm

+3

Sorry, ich habe zu früh gefragt. Ich habe es herausgefunden. Wenn irgendjemand das braucht: 'android: background = '@ {ee.BackColor, default = @ zeichnbarer/colorPrimaryD}'' '' _ '' '_' 'FF627C1B' – ehmunnehm

0

Wenn Sie die Standard sehen wollen Wert nur zur Designzeit, in Betracht ziehen, Designtime Layout Attributes zu verwenden. Dies ist nützlich, wenn Sie z. B. falsche Werte (z. B. zu lange Werte) eingeben und sehen möchten, wie es gerendert wird, aber zur Laufzeit nicht angezeigt werden soll.

Natürlich können Sie beide Techniken verwenden - Standard-Platzhalter (von @Bandreid genannt) und Designtime-Attribute. In diesem Fall sehen Sie Designtime-Attribute zur Designzeit und Platzhalter zur Laufzeit.

2

Das Vorschaufenster zeigt Standardwerte für Datenbindungsausdrücke an.

android:text="@{user.firstName, default=PLACEHOLDER}" 

Dies kann den Standardwert festlegen.

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center_horizontal" 
    android:text="@{defaultString ?? @string/hello_world}"/>