2017-03-21 5 views
3

retrofitコールバックを使用してアプリを作成しました。それで、私はテキストでいくつかの情報を表示したい。私はすでにデータをバインドしてtextViewで、私はそれと一緒にいくつかのテキストを連結する必要があります。MVVM:ModelクラスのStringを連結する方法は?

<?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; 
    } 
} 

予想される出力:

Model戻り+ "連結文字列"

+0

あなたは文字通りちょうどあなたのgetXXX()メソッド – Milney

答えて

3

oncat

あなたのすべての処理の事とビジネスロジックはコントローラクラス(MVVMでViewModelにIE)である必要があり、この簡単に試してみてくださいその値をControllerに渡すと、そのメソッドはConcat Stringで値を返します。

コードサンプル

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

コントローラメソッド

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

C

マイコードは

ビューに従いますコントローラーで

書き込みの一つの方法、:それはXMLで

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

ニースの最後に+「あなたの文字列を」追加....あなたの質問の最後の文としての答えを書きましたが、ときにTextViewまたはEditTextから値を取得します。それはconcat文字列で返されます – Keerthivasan

+1

@Keerthivasan OPは問題のそれらを証明しませんでした、OPは文字列を連結したいので、私は最も単純な方法を与えました:) –

+0

ええと私それを受け入れる。私はあなたの答えのために投票を掲示する理由thatsなぜならupvoteのために – Keerthivasan

関連する問題