问题标签 [android-binding-adapter]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1956 浏览

java - Android 数据绑定:多次调用自定义绑定适配器时,生成的代码中缺少返回语句

我正在使用 android 数据绑定库和 MVVM 架构。在 xml 布局中,我定义了一个名为 viewModel 的 myViewModel 类型的变量。布局有几个 TextInputEditText 我使用了以下自定义绑定适配器:

在布局中,我只添加app:onDrawableRightClick="@{() -> viewModel.doThing()}"了一个 TextInputEditText 并单击运行。一切正常,没问题。

现在我返回并添加app:onDrawableRightClick="@{() -> viewModel.doOtherThing()}"到第二个 TextInputEditText。这次编译失败,出现error: missing return statement.

错误出现在 MyFragmentBindingImpl (生成)中,在此代码块中:

在 switch 之外既没有默认情况,也没有返回语句。这会导致错误,但我很确定在处理每种情况时不需要默认情况...无论如何,当我返回 xml 并删除一个侦听器绑定时,MyFragmentBindingImpl 更改为:

编译器又高兴了,但我需要多次使用绑定适配器。如何让库添加返回语句?有解决方法吗?

我正在使用 Android Studio 3.4 预览版。谢谢大家

0 投票
2 回答
223 浏览

android - 数据绑定传递带有特殊字符的 xml 元素

考虑以下 bindingAdapter

xml中的设置是:

给出以下错误:

但是,如果我将寻呼机 ID 更改为没有下划线或任何特殊字符的任何内容@+id/pager,它可以正常工作,有什么正当理由吗?

0 投票
2 回答
1649 浏览

kotlin - 带有 BindingAdapter 的 AndroidX

我在让我的 BindingAdapter 在我的新应用程序中工作时遇到了一些问题。

我总是收到以下错误:

这是我的 BindingAdapter:

这是在 XML 中生成问题的视图:

这是一个新项目,所以我从 Android X 开始,不需要进行迁移。

我在 build.grade 中有这一行:

我正在使用 gradle 3.2.11。

我不确定这是否需要,但这是我膨胀绑定的代码:

所有其他标准数据绑定的东西都有效。一旦我尝试设置 BindingAdapter,它就会失败。

我在 SO 上读到有人声称数据绑定不能与 X 一起正常工作。但这些是 10 月份的帖子,有人声称它在同一篇文章中对他们来说非常有效。

我是否忘记了一些愚蠢的事情,或者它真的还没有与 X 一起工作?

0 投票
1 回答
580 浏览

android - 未应用库项目中的 DataBinding BindingAdapter

我正在创建一个多模块项目。我想在模块中共享 BindingAdapter。但是,会出现以下错误。

这是示例项目。 https://github.com/takahirom/databinding-in-library-sample

应用程序模块https://github.com/takahirom/databinding-in-library-sample/blob/master/app/src/main/res/layout/content_main.xml

库模块https://github.com/takahirom/databinding-in-library-sample/blob/master/library/src/main/java/TestBinding.kt(如果我把这个文件放在app模块中,错误不会发生)

0 投票
1 回答
918 浏览

android - 实时数据.getValue() 返回 null 尽管 mPendingData 持有正确的值

我想使用自定义 @BindingAdapter 来使用 LiveData 设置 TextView 的文本。

文本视图:

绑定适配器:

使用调试器,我已经检查了数据对象是否包含正确的值,它确实:

在此处输入图像描述

但不幸的是 data.getValue() 总是返回 null,所以文本没有设置为提供的 TextView。

我错过了什么吗?我真的需要它以这种方式工作......希望如此。

更新

生命周期所有者设置为绑定,如下所示:

当我使用

我可以毫无问题地读取观察到的 LiveData 的值。

更新 2

Viewmodels 的 getText 方法:

textRepository 的 getText 方法:

而 textDao 的 findById 方法:

0 投票
0 回答
148 浏览

android - 绑定适配器方法的常量列表

我正在使用所有最新的 Android 功能,如 AndroidX、JetPack 等。

我想创建我的自定义 BindingAdapter,通过布局从枚举传递类型值列表。它应该是这样的:

E我的枚举在哪里:

所以,我想知道,是否有某种方法可以使用 DataBinding 功能在布局中定义数组/列表,以及如何将其传递给 BindingAdapter 方法?

PS 当然,我知道我可以通过 Activity/Fragment 的绑定将它作为变量传递,但我想保持我的代码干净:)

0 投票
2 回答
1922 浏览

android - 使用 Dagger 2 注入数据绑定适配器

我正在使用 Android 数据绑定适配器,它说,它必须是静态的。因此,我试图使其成为非静态的,并按照本教程使用 Dagger 将我的类注入其中。虽然我可以Picasso在应用程序中正常使用 dagger 提供的实例,但它说Picasso cannot be provided without an @Inject constructor or an @Provides-annotated method

我将@Inject 注释添加到我的绑定适配器构造函数,但仍然得到相同的错误

我认为该问题可能与某个component问题有关,并改变了我的方法并遵循此链接并使用subcomponent. 但是这次匕首无法生成子组件,我无法像示例中那样设置它

如何使用 Dagger 将我的自定义类注入到绑定适配器中,不胜感激

这是我的匕首类,与我上面提到的教程非常相似

ImageBindingAdapter 类

绑定模块类

绑定组件类

应用组件类

应用模块类

应用类

0 投票
2 回答
1524 浏览

android - BindingAdapter 中的高阶函数

我在 android 中使用 DataBinding,我有一个自定义视图:CarouselView

我为此编写了一个绑定适配器:

在xml中:

但它不编译。所以我在 Stackoverflow 中看到了这个答案。但我的问题是我不能使用 Runnable 代替 kotlin hoc 函数,因为我需要传递一个参数来运行。

我该如何解决?

0 投票
1 回答
1284 浏览

android - 在 Kotlin 中使用带有字符串数组的 BindingAdapter

我有以下 BindingAdapter:

在我的 XML 文件上:

但是在构建时,我收到一个错误:

我遵循了这个问题中的建议,但在这种情况下,Kotlin 的等价物是String[]什么?

或者,或者,我可以将实际resource id而不是字符串数组传递给绑定适配器吗?

谢谢!

0 投票
2 回答
693 浏览

android - 我们如何在自定义数据绑定属性中编写原始字符串?

我为加载图像 url 编写了一个自定义属性,如下所示:

当我想在 xml 中设置一个原始字符串时,它给了我srcCircleUrl attribute not found错误。

例如,如果我写这样的东西,它就不起作用:

所以,问题是,如何将原始字符串作为自定义数据绑定属性的输入?


我还测试了这些方法: