Я хочу конкатрировать две строки для TextView в android, Data Binding Api

Я использую DataBinding Api для установки представлений в макетах android. Вот мой макет.

layout.xml

 <?xml version="1.0" encoding="utf-8"?> <layout xmlns:android="http://schemas.android.com/apk/res/android"> <data> <variable name="user" type="testing.sampleapp.com.sampleapp.User"/> </data> <LinearLayout android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{ "Hello " + user.firstName}"/> </LinearLayout> 

Я хочу, чтобы TextView отображал Hello UserName . Как это сделать, используя привязку данных api.

Примирить его с серьезным акцентом (`)

 android:text="@{`Hello ` + user.firstName}"/> 

Объявить строку в strings.xml

Например "Hello %$1s , (whatever you want to add then add here)" .

String.format(stringResource, upsatename); использовать String.format(stringResource, upsatename);

Поскольку xml поддерживает одинарные кавычки для значений атрибута, вы также можете сделать это:

 android:text='@{"Hello "+user.firstName}' 

Сделать concat в xml-макете:

 <data> /*This is used for android view*/ <import type="android.view.View" /> /*This is used for android resources*/ <import type="com.myapp.R" /> /*This is app context*/ <variable name="context" type="android.content.Context" /> /*This is used for model data*/ <variable name="item" type="com.myapp.models.Chapter" /> </data> android:text="@{item.serialNo.concat(@string/space).concat(item.title)}" 

В strings.xml я добавил код для пробела:

 <string name="space">\u0020</string> 
Intereting Posts