2017-11-01 5 views
0

Androidでデータバインディングを使用してアレイ上で双方向バインディングを達成したいと考えています。Androidデータバインディングアレイとの双方向バインディング

これは私が持っているコードの簡易版である:

<data> 
    <variable 
     name="values" 
     type="Integer[]" /> 
</data> 

<EditText 
    ... 
    android:text="@={Converter.toString(values[0])} /> 

しかし、私はこのコードをビルドしようとすると、次のように私はメッセージが表示されます:

cannot find method setTo(java.lang.Integer[], int, java.lang.Integer) in class android.databinding.ViewDataBinding

どのように達成することができますすべての可能な場合、配列との双方向バインディング?

+0

奇妙です。そのメソッドはViewDataBinding.javaにあります: 'void setTo(T [] arr、int index、T value)' - 自分で確認できます。あなたはどういうわけかgradleプラグインから期待されるものとは違うライブラリ依存関係を指定していますか? –

+0

あなたが言及した方法を確認し、実際に見つけました。図書館の依存関係はどこで確認できますか?私はアプリケーションのbuild.gradleでこれらのコード行を使用しました 'dataBinding { enabled = true }' –

答えて

1

ArrayListを使用して次のように試してみましょう。

<data> 
    <import type="java.util.ArrayList"/> 
    <variable 
     name="values" 
     type="ArrayList&lt;Integer&gt;"/> 
</data> 

<EditText 
    ... 
    android:text="@={Converter.toString(values.get(0))} /> 
+0

ありがとう@sanoop、これは私のために働いた。なぜ私は@George Mountが別の投稿の受け入れられた答えでそれを使っているのを見たので、Integer []がうまくいかなかったのかを解明しようとしていました。 –

関連する問題