【问题标题】:Two-way data binding Android. Cannot find a getter for <> that accepts parameter type ''双向数据绑定Android。找不到接受参数类型“”的 <> 的 getter
【发布时间】:2021-06-02 11:07:02
【问题描述】:

我正在基于 Udemy 课程构建我的第一个 Android 应用程序。这是一个健身房跟踪应用程序。我正在尝试添加用户可以在回收站视图中编辑条目的功能。我正在使用数据绑定,因此我假设数据将自动更新。我发现有双向数据绑定。

当我添加 '=' 符号以指示双向数据绑定时,我收到错误“找不到接受参数类型的 的 getter”

这是我的 editText 布局: '''

                android:id="@+id/reps_field"
                android:layout_width="125dp"
                android:layout_height="wrap_content"
                android:gravity="center"
                android:text=" 50 "
                android:inputType="number"
                tools:layout_editor_absoluteX="107dp"
                tools:layout_editor_absoluteY="629dp"
                app:reps_field="@={workingset}"/>'''

这是我用来仅在 textView 中显示数据的适配器

@BindingAdapter("reps_field")
fun TextView.setReps(item: Workout?) {
    item?.let {
        text = item.reps.toString()
    }
}

如果有帮助,这里是 Github 存储库的链接 https://github.com/anthony-ruiz/my-workout-tracker

我的目标是能够将数据中的更改保存到数据库中

【问题讨论】:

  • 我对@9​​87654325@ 的属性有点困惑?你有与之关联的BindingAdapter 吗?
  • 是的,这是正确的。我有一个 BindingAdapter 我更新了问题。 @BindingAdapter 没有显示
  • 你有InverseBindingAdapter吗?
  • 不,我没有。我怎么能做一个我在看developer.android.com/reference/android/databinding/… 但我真的想不通
  • 我刚刚发布了一个完整的答案以及您可以在哪里找到更多相关文档。

标签: android kotlin android-databinding


【解决方案1】:

查看您的存储库,您似乎没有为reps_field 设置InverseBindingAdapter,需要实现它来告诉数据绑定如何在自定义视图更改时检索值。除此之外,您还需要第三个绑定适配器,以便在值发生更改时通知数据绑定。

这里有这个过程的文档和一个非常全面的示例:Two-way data binding。

【讨论】:

  • 感谢您查看我的代码并为我指明正确的方向。我会看看你链接的资源。
猜你喜欢
  • 1970-01-01
  • 2018-10-23
  • 1970-01-01
  • 2016-12-24
  • 1970-01-01
  • 1970-01-01
  • 2019-12-24
  • 2020-02-28
  • 1970-01-01
相关资源
最近更新 更多