Quiero concat dos cadenas para un TextView en android, vinculación de datos Api
Im utilizando DataBinding
Api para establecer las vistas en los diseños android. Aquí está mi diseño.
Layout.xml
- Android vinculación de datos build.gradle sincronización prob?
- Enlace de datos de Android - no puede invocar el controlador de clics
- Cómo utilizar Data Binding y Kotlin en Android Studio 3.0.0
- Posible motivo de "Error: no se pueden generar carpetas de vista java.lang.NullPointerException"
- Dagger 2 y Android Data Binding conflict
<?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>
Quiero que el TextView muestre Hello UserName . Cómo lograr esto utilizando la API de vinculación de datos.
- ¿Cómo puedo acceder a una variable de instancia dentro de un BindingAdapter al usar la vinculación de datos de Android?
- Cambia dinámicamente la visibilidad de los elementos de diseño con la vinculación de datos de Android.
- Realm.io / Dagger / Databinding en el mismo proyecto
- Utilizar un BindingAdapter con una matriz de cadenas de los recursos
- Práctica recomendada para Android MVVM startActivity
- Android Databinding Compile Advertencia: Referencias de método con '.' es obsoleto
- La conexión de datos falla con NoSuchMethodError
- ¿Dónde colocar el método androide BindingAdapter?
Concate con acento grave (`)
android:text="@{`Hello ` + user.firstName}"/>
Declare Su cadena en strings.xml
Como "Hello %$1s , (whatever you want to add then add here)"
.
String.format(stringResource, upsatename);
use String.format(stringResource, upsatename);
Dado que xml admite comillas simples para valores de atributo, también puede hacer esto:
android:text='@{"Hello "+user.firstName}'
Para hacer un concat en formato 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)}"
En strings.xml He agregado código para el espacio en blanco:
<string name="space">\u0020</string>