2017-07-15 7 views
0

を私はErrorEmptyPage.javaを持っている:データは動的なIDによるリソース取得binding- - Androidの

public class ErrorEmptyPage { 

    private int iconId; 
    private int messageId; 
    private int actionTextId; 

    public int getIconId() { 
     return iconId; 
    } 

    public void setIconId(int iconId) { 
     this.iconId = iconId; 
    } 

    public int getMessageId() { 
     return messageId; 
    } 

    public void setMessageId(int messageId) { 
     this.messageId = messageId; 
    } 

    public int getActionTextId() { 
     return actionTextId; 
    } 

    public void setActionTextId(int actionTextId) { 
     this.actionTextId = actionTextId; 
    } 

} 

その後、私は私のactivityでそれを埋める:

 ErrorEmptyPage errorEmptyPage = new ErrorEmptyPage(); 
     errorEmptyPage.setIconId(iconId); 
     errorEmptyPage.setMessageId(messageId);<=== for example R.string.fetching_data_failed 
     errorEmptyPage.setActionTextId(actionTextId); 
activityStartBinding.contentInstagramEmpty.setMessageEmptyView(errorEmptyPage); 

そして、私のxmlに私が含まれているincludeアイテムを持っていますベロウxml

<?xml version="1.0" encoding="utf-8"?> 
<layout xmlns:android="http://schemas.android.com/apk/res/android"> 

    <data> 
     <variable 
      name="messageEmptyView" 
      type="ir.jmostafa.appportalmostafa.start.models.ErrorEmptyPage" /> 
    </data> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center" 
     android:orientation="vertical"> 

     <com.joanzapata.iconify.widget.IconTextView 
      android:id="@+id/empty_view_icon_icontextview" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="@{@string/messageEmptyView.iconId}" 
      android:textSize="20sp" /> 

     <TextView 
      android:id="@+id/empty_view_message_textview" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:gravity="center" 
      android:text="@{@string/messageEmptyView.messageId}" /> 

     <Button 
      android:id="@+id/empty_view_action_button" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="@{@string/messageEmptyView.actionTextId}" 
      android:visibility="gone" /> 

    </LinearLayout> 
</layout> 
android:text="@{@string/messageEmptyView.messageId}" 

しかし、私に怒鳴るのエラーを取得:3210は、その後、私は怒鳴るようxml含めるの項目を埋める

enter image description here

答えて

1

次のtry

<com.joanzapata.iconify.widget.IconTextView 
      android:id="@+id/empty_view_icon_icontextview" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="@{String.valueOf(messageEmptyView.iconId)}" 
      android:textSize="20sp" /> 

を、あなたは中線の下にインポートする必要があります..以下のように。

<data> 
     <variable 
      name="messageEmptyView" 
      type="ir.jmostafa.appportalmostafa.start.models.ErrorEmptyPage" /> 

<import type="java.lang.string" /> 
    </data> 

アップデートアンサー。

そして、あなたはそれからstring.xmlをからユーザーの値にしたい場合、あなたは、以下のような

<string name="invitation_invited_by_user" formatted="false">%s %s</string> 
+0

すみません。働かないでください。 –

+0

'iconId'のために' int'と同じことをしています。私の更新された答えをチェックしてください。 –

+0

文字列xmlから値を取得できません。数字だけが表示されます。 –

0
android:[email protected]{String.valueOf (messageEmptyView.messageId)} 

あなたのような

android:text="@{@string/invitation_invited_by_user(invitation.occasion.user.firstName, invitation.occasion.user.lastName)}" 

とstring.xmlをから値を記述する必要がありますmessageIdはintです。intandroid:textにありません。

+0

IDを取得するだけで動作しません。 –

関連する問題