问题标签 [android-databinding]
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.
android - Android Data Binding build error: [data binding plugin]: failed to setup data binding
我正在使用 Google 的 Android Data Binding 库,我曾经使用过它。现在,似乎“某些东西”发生了变化,它导致了数据绑定库的问题。我被一个很难调试的非常通用的错误所困扰,一个[data binding plugin]: failed to setup data binding
.
AFAIK,当数据绑定库与您的布局文件之一存在问题时(例如绑定中的拼写错误),会引发此错误。问题是,如何找出导致问题的布局文件?有人对如何找出问题所在有任何提示/建议吗?由于没有一次注释掉 XML 布局代码和 Java 代码文件,我对如何有效地解决这些类型的问题感到不知所措。
我得到的唯一线索是 Gradle 控制台中这个相当非描述性的堆栈跟踪:
android - Espresso 测试失败,java.lang.String 无法转换为 com.abc.events.databinding.SponsorDetailBinding
当我的 espresso 测试在片段布局上使用 android 数据绑定运行时,我收到此错误。当我使用该应用程序时,我没有看到任何崩溃。无论如何我可以避免这种情况吗?
片段中的 onCreateView 方法:
fragment_sponsordetail 布局:
堆栈跟踪是
引起:java.lang.ClassCastException:java.lang.String 无法在 com.abc.events.ui.detail.SponsorDetailFragment.onCreateView(SponsorDetailFragment.java:102) 处转换为 com.abc.events.databinding.SponsorDetailBinding 在 android .support.v4.app.Fragment.performCreateView(Fragment.java:1789) 在 android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:924) 在 android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager .java:1116) 在 android.support.v4 的 android.support.v4.app.FragmentManagerImpl.addFragment(FragmentManager.java:1218) 在 android.support.v4.app.FragmentManagerImpl.onCreateView(FragmentManager.java:2170) 在 android.support.v4。 app.FragmentActivity.onCreateView(FragmentActivity.java:300) 在 android.support.v7.app.AppCompatDelegateImplV7.callActivityOnCreateView(AppCompatDelegateImplV7.java:838) 在 android。support.v7.app.AppCompatDelegateImplV11.callActivityOnCreateView(AppCompatDelegateImplV11.java:34) 在 android.support.v7.app.AppCompatDelegateImplV7.onCreateView(AppCompatDelegateImplV7.java:826) 在 android.support.v4.view.LayoutInflaterCompatHC$FactoryWrapperHC.onCreateView( LayoutInflaterCompatHC.java:44) at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater$WrapperFactory2.onCreateView(CalligraphyLayoutInflater.java:280) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:725) ... 24 更多calligraphy.CalligraphyLayoutInflater$WrapperFactory2.onCreateView(CalligraphyLayoutInflater.java:280) 在 android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:725) ... 24 更多calligraphy.CalligraphyLayoutInflater$WrapperFactory2.onCreateView(CalligraphyLayoutInflater.java:280) 在 android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:725) ... 24 更多
android - android:recyclerview中的条目
我使用listview
了条目属性,如下所示:
现在我将其转换为RecyclerView
我想知道我们是否有android:entries
属性RecyclerView
?或者任何其他属性而不是条目?
android - 使用 Android 数据绑定时如何访问 BindingAdapter 中的实例变量?
所以我使用这个流行的数据绑定代码片段通过传入 URL 将图像加载到列表项的图像视图中:
绑定适配器:
如果我只是制作BindingAdapter
非静态的,那么它会引发错误:
android - Android数据绑定:包不存在
我正在尝试将数据绑定与 Android 一起使用。
我不能再建立我的项目了。我收到了这个错误:
“错误:(13, 46) 错误:包 ch.company.project.databinding 不存在”
这是我的gradle
:
和
这里是gradle输出:
android - 使用自定义适配器的 Android 数据绑定
我正在尝试将Android 的数据绑定功能与自定义适配器和 ListView 一起使用。我无法覆盖自定义适配器的getView
方法:
所以我的问题是:
- 我从哪里得到
View
我应该返回的元素?或者换句话说,如何将对象绑定到膨胀/转换的视图? convertView
使用数据绑定时如何重用?- 这是实现这一点的正确方法吗?该指南对 ListViews 不是很清楚
这是指南中 ListViews 的唯一参考:
如果您在 ListView 或 RecyclerView 适配器中使用数据绑定项,您可能更喜欢使用:
android - Android 数据绑定条件资源
以下是 Android 数据绑定的典型用法:
当国家可以采用多种价值观时,情况会变得更加困难。编辑:在方法调用中使用 status 属性是使其工作的唯一方法:
并定义静态方法(没有@Bindable):
我怎样才能做到这一点,而不在 XML 中放置嵌套的三元运算符(我觉得这不是很优雅,顺便说一句),或者不传递check.status
属性?
编辑:添加 XML:
android - 是否可以获得 android layout.xml 文件中声明的小部件的属性值?
android 应用程序中有没有办法检索在 a 中声明的小部件的属性值layout.xml
?
例如在我的layout.xml文件中,我有:
我想检索 的文字值android:checked
,例如我想"@{uiprefs.switchButtonEditable}"
在运行时检索。
我在android.content.res.Resources
课堂上使用getResources()
Activity 进行搜索但没有成功:
- 我无法将 xml 文件作为流获取。
- 通过 解析属性
Resources.getLayout()
不会恢复属性值。
也许这个值隐藏在CheckBox
实例中的某个地方,但我在调试时使用检查找不到它......
注意:我要检索的值尤其是数据绑定文字。也许我可以通过数据绑定 API 检索它?
android - 引入数据绑定后无法运行仪器测试
我越来越
Warning: library class android.databinding.DataBindingUtil depends on program class android.databinding.DataBindingComponent
assembleItestAndroidTest
在将数据绑定引入我的项目后尝试运行 gradle 任务时,我得到了这个。(我有一个单独的用于仪器测试的构建配置,我称之为itest
,另外两个是调试和发布)
如何解决这个问题?
编辑:我认为这是一个 android-gradle 构建工具错误或 Android 数据绑定错误。我已向 Google 提交了一份错误报告,其中包含有关如何重现的完整说明。
这里的关键是构建类型被配置为运行缩小。debug
因此,只要您依赖数据绑定,除仪器测试之外的任何构建类型都会失败。
对于任何将持续集成作为其生产周期不可或缺的一部分的公司来说,这几乎是一个阻碍,所以我希望谷歌优先考虑这一点。