2015-09-29 6 views
8

Sto tentando di utilizzare l'associazione dati. Funziona correttamente se uso l'oggetto che ha attributo di stringa, ma in questo caso io uso int e non funziona. Ho oggetto User:

public class User extends BaseObservable{ 
     public int age; 
     ...... 


     public User() {} 

     public int getAge() { 
      return age; 
     } 

     public void setAge(int age) { 
      this.age = age; 
     } 
     ... 

    } 

qui è il mio layout

<?xml version="1.0" encoding="utf-8"?> 
<layout xmlns:android="http://schemas.android.com/apk/res/android"> 
    <data> 
     <variable name="user" type="com.example.bindingview.User"/> 
    </data> 
    <LinearLayout 
     android:orientation="vertical" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="@{user.age}"/> 
    </LinearLayout> 
</layout> 

Il problema è che TextView non può avere il testo di un'epoca che è int. se cambio da int a stringa di attributo età ha funzionato bene. Cosa devo fare per evitare questo problema?

risposta

34

Just Add String.valueOf():

  <TextView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="@{String.valueOf(user.age)}"/> 
+0

ringrazio molto ~ – lovefish

+0

hai salvato la vita. – itmammoth