2017-08-21 11 views
0

私のアプリでデータバインディングを使用しようとしていますが、何も表示されません。Androidデータバインディングが表示されない

これは私がやったことです:

  • 私は空のアクティビティで新規プロジェクトを作成しました。
  • は、私はこれは私のactivity_main.xml

    <?xml version="1.0" encoding="utf-8"?> 
        <layout xmlns:android="http://schemas.android.com/apk/res/android"> 
    
         <data> 
          <variable name="game" type="my.name.bar.Bar"/> 
         </data> 
         <android.support.constraint.ConstraintLayout 
          xmlns:app="http://schemas.android.com/apk/res-auto" 
          xmlns:tools="http://schemas.android.com/tools" 
          android:layout_width="match_parent" 
          android:layout_height="match_parent" 
          tools:context="my.name.bar.MainActivity"> 
    
          <TextView 
           android:layout_width="wrap_content" 
           android:layout_height="wrap_content" 
           android:text="@{game.GetFoo()}" 
           app:layout_constraintBottom_toBottomOf="parent" 
           app:layout_constraintLeft_toLeftOf="parent" 
           app:layout_constraintRight_toRightOf="parent" 
           app:layout_constraintTop_toTopOf="parent" /> 
    
         </android.support.constraint.ConstraintLayout> 
        </layout> 
    

    であり、これは私のバークラスである私のbuild.gradle

dataBinding { 
    enabled = true 
} 

を追加

public class Bar { 
     private String str; 

     public Bar() { 
      str = "Foo"; 
     } 

     public String GetFoo() { 
      return str; 
     } 
    } 

しかし、私は白い画面しか得ていません。バインディングを「Hello World!」に置き換えた場合すべてうまくいく。私は間違って何をしていますか? (コメントから昇格)

+2

私は値をバインドするのを忘れていると思います。あなたが縛ると、このようなものを使いましたか? 'ActivityMainBinding binding = DataBindingUtil.setContentView(this、R.layout.activity_main); binding.setGame(new Bar()); ' –

+0

ありがとう!それが私が行方不明だったものです!あなたは答えとしてあなたのコメントを宣伝することができ、またこのコード(MainActivity.java)をどこに置くべきかを指示することができます。 – ffonz

答えて

0

あなたは値をバインドする必要があります。あなたの場合、これは次のようなものです:

+0

... MainActivity.javaにあります。 – ffonz

関連する問題