본문 바로가기

dev/android

Playing with String and DataBinding in xml

1. Use hard-coded text

hard-coded text를 이용할 수 있습니다.

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@{`It is hard-coded.`}"/>

Result

It is hard-coded.

2. Use string resource

strings.xml에 선언된 string을 이용할 수 있습니다.

<string name="msg_hello_data_binding">Hello DataBinding!</string>
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@{@string/msg_hello_data_binding}"/>

Result

Hello DataBinding!

3. Use format string resource with hard-coded text

strings.xml에 선언된 format string을 이용할 수 있습니다.

<string name="msg_hello_data_binding">%s, Hello DataBinding!</string>
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@{@string/msg_hello_data_binding(`Seokwon`)}"/>

Result

Seokwon, Hello DataBinding!

4. Use format string resource with string resource

물론 format string에 hard-coded뿐만 아니라 string resource도 사용할 수 있습니다.

<string name="msg_hello_data_binding">%s, Hello DataBinding!</string>
<string name="everybody">Everybody</string>
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@{@string/msg_hello_data_binding(@string/everybody)}"/>

Result

Everybody, Hello DataBinding!

5. Use format string resource with ternary operator ?:(Feat hard-coded)

format string resource 에서 삼항 조건 연산자?:와 hard-coded text를 이용해서 표현할 수 있습니다.

<string name="msg_hello_data_binding">%s, Hello DataBinding!</string>
<data>
    <variable
        name="isHelpful"
        type="Boolean"/>
    <data>

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@{@string/msg_hello_data_binding(isHelpful ? `Gooood` : `Woo`)}"/>

Result

Gooood, Hello DataBinding!
or
Woo, Hello DataBinding!

6. Use format string resource with ternary operator ?:(Feat string resource)

format string resource 에서 삼항 조건 연산자?:와 string resource를 이용해서 표현할 수 있습니다.

<string name="msg_hello_data_binding">%s, Hello DataBinding!</string>
<string name="msg_good">Goooood</string>
<string name="msg_bad">Wooooooooo</string>
<data>
    <variable
        name="isHelpful"
        type="Boolean"/>
    <data>

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@{@string/msg_hello_data_binding(isHelpful ? @string/msg_good : @string/msg_bad)}"/>

Result

Goooood, Hello DataBinding!
or
Wooooooooo, Hello DataBinding!

 

 

 

sangcomz/DatabindingExample

Contribute to sangcomz/DatabindingExample development by creating an account on GitHub.

github.com