【问题标题】:Android Data Binding two way binding with arrayAndroid Data Binding 与数组的两种方式绑定
【发布时间】:2017-11-01 15:45:16
【问题描述】:

我想在 Android 中使用 Data Binding 实现数组的双向绑定。

这是我拥有的代码的简化版本:

<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

如果可能的话,如何实现与数组的双向绑定?

【问题讨论】:

  • 很奇怪。该方法存在于 ViewDataBinding.java 中:void setTo(T[] arr, int index, T value)——你可以自己检查。您是否以某种方式指定了与 gradle 插件预期不同的库依赖项?
  • 我检查并确实找到了您提到的方法。我在哪里可以看到库依赖关系,它应该是什么。我只在我的应用程序的 build.gradle dataBinding { enabled = true } 中使用了这些代码行

标签: arrays android-databinding two-way-binding


【解决方案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))} />

【讨论】:

  • 谢谢@sanoop,这对我有用。我一直在想弄清楚为什么Integer[] 不起作用,因为我已经看到@George Mount 在另一个帖子的可接受答案中使用它。
猜你喜欢
  • 2017-11-18
  • 2018-02-08
  • 1970-01-01
  • 2016-02-27
  • 1970-01-01
  • 2017-12-29
  • 1970-01-01
  • 2013-11-29
  • 2011-04-09
相关资源
最近更新 更多