问题标签 [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.
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 预览版。谢谢大家
android - 数据绑定传递带有特殊字符的 xml 元素
考虑以下 bindingAdapter
xml中的设置是:
给出以下错误:
但是,如果我将寻呼机 ID 更改为没有下划线或任何特殊字符的任何内容@+id/pager
,它可以正常工作,有什么正当理由吗?
kotlin - 带有 BindingAdapter 的 AndroidX
我在让我的 BindingAdapter 在我的新应用程序中工作时遇到了一些问题。
我总是收到以下错误:
这是我的 BindingAdapter:
这是在 XML 中生成问题的视图:
这是一个新项目,所以我从 Android X 开始,不需要进行迁移。
我在 build.grade 中有这一行:
我正在使用 gradle 3.2.11。
我不确定这是否需要,但这是我膨胀绑定的代码:
所有其他标准数据绑定的东西都有效。一旦我尝试设置 BindingAdapter,它就会失败。
我在 SO 上读到有人声称数据绑定不能与 X 一起正常工作。但这些是 10 月份的帖子,有人声称它在同一篇文章中对他们来说非常有效。
我是否忘记了一些愚蠢的事情,或者它真的还没有与 X 一起工作?
android - 未应用库项目中的 DataBinding BindingAdapter
我正在创建一个多模块项目。我想在模块中共享 BindingAdapter。但是,会出现以下错误。
这是示例项目。 https://github.com/takahirom/databinding-in-library-sample
库模块https://github.com/takahirom/databinding-in-library-sample/blob/master/library/src/main/java/TestBinding.kt(如果我把这个文件放在app模块中,错误不会发生)
android - 实时数据.getValue() 返回 null 尽管 mPendingData 持有正确的值
我想使用自定义 @BindingAdapter 来使用 LiveData 设置 TextView 的文本。
文本视图:
绑定适配器:
使用调试器,我已经检查了数据对象是否包含正确的值,它确实:
但不幸的是 data.getValue() 总是返回 null,所以文本没有设置为提供的 TextView。
我错过了什么吗?我真的需要它以这种方式工作......希望如此。
更新
生命周期所有者设置为绑定,如下所示:
当我使用
我可以毫无问题地读取观察到的 LiveData 的值。
更新 2
Viewmodels 的 getText 方法:
textRepository 的 getText 方法:
而 textDao 的 findById 方法:
android - 绑定适配器方法的常量列表
我正在使用所有最新的 Android 功能,如 AndroidX、JetPack 等。
我想创建我的自定义 BindingAdapter,通过布局从枚举传递类型值列表。它应该是这样的:
E
我的枚举在哪里:
所以,我想知道,是否有某种方法可以使用 DataBinding 功能在布局中定义数组/列表,以及如何将其传递给 BindingAdapter 方法?
PS 当然,我知道我可以通过 Activity/Fragment 的绑定将它作为变量传递,但我想保持我的代码干净:)
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 类
绑定模块类
绑定组件类
应用组件类
应用模块类
应用类
android - BindingAdapter 中的高阶函数
我在 android 中使用 DataBinding,我有一个自定义视图:CarouselView
我为此编写了一个绑定适配器:
在xml中:
但它不编译。所以我在 Stackoverflow 中看到了这个答案。但我的问题是我不能使用 Runnable 代替 kotlin hoc 函数,因为我需要传递一个参数来运行。
我该如何解决?
android - 在 Kotlin 中使用带有字符串数组的 BindingAdapter
我有以下 BindingAdapter:
在我的 XML 文件上:
但是在构建时,我收到一个错误:
我遵循了这个问题中的建议,但在这种情况下,Kotlin 的等价物是String[]
什么?
或者,或者,我可以将实际resource id
而不是字符串数组传递给绑定适配器吗?
谢谢!
android - 我们如何在自定义数据绑定属性中编写原始字符串?
我为加载图像 url 编写了一个自定义属性,如下所示:
当我想在 xml 中设置一个原始字符串时,它给了我srcCircleUrl attribute not found
错误。
例如,如果我写这样的东西,它就不起作用:
所以,问题是,如何将原始字符串作为自定义数据绑定属性的输入?
我还测试了这些方法: