MVVM: Как связать строку в классе модели?

Я создал приложение, используя обратный вызов. В том, что я хочу показать некоторую информацию с текстом. В textView я уже привязал данные, также мне нужно конкатрировать некоторые тексты вместе с этим.

Мой кодекс

Посмотреть:

<?xml version="1.0" encoding="utf-8"?> <layout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools"> <data> <variable name="UserProfile" type="com.practical_session.sai.instaprouser.Profile.model.UserProfileInfo" /> </data> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/linear" android:orientation="vertical" android:background="@drawable/animation_list" tools:context="com.practical_session.sai.instaprouser.Profile.view.ProfileActivity"> <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.v7.widget.AppCompatTextView android:id="@+id/username" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/imageView" android:layout_marginLeft="10dp" android:layout_marginTop="8dp" android:textSize="20dp" android:text="@{UserProfile.username}" android:textColor="@android:color/black" /> </RelativeLayout> </LinearLayout> </layout> 

Модель:

 public class UserProfileInfo extends BaseObservable { @SerializedName("username") @Expose private String username; @Bindable public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } } 

Ожидаемый результат:

Возврат модели + "Конкатентная строка"

Попробуйте этот простой способ

Все ваши обработки и бизнес-логика должны быть в классе контроллера (т. Е. ViewModel в MVVM)

Напишите один из методов в контроллере, передайте значение Controller, затем этот метод возвращает значение с помощью строки Concat

Образец кода

 android:text="@{Controller.getUserProfile(UserProfile.username)}" 

Метод контроллера

 public String getUserProfile(String name) { return name + "concat string"; } 

Конкатрировать его в xml

 android:text="@{UserProfile.username + `Concat String`}"