Articles of android databinding

数据绑定因NoSuchMethodError而失败

每当我尝试assemble应用assemble调试版本时更新到gradle 2.10后,我得到NoSuchMethodErrorexception。 以下是构建日志的相关部分: java.lang.RuntimeException: failure, see logs for details. cannot generate view binders java.lang.NoSuchMethodError: com.google.common.base.Strings.isNullOrEmpty(Ljava/lang/String;)Z at android.databinding.tool.util.StringUtils.capitalize(StringUtils.java:57) at android.databinding.tool.util.ParserHelper.toClassName(ParserHelper.java:23) at android.databinding.tool.store.ResourceBundle$LayoutFileBundle.getFullBindingClass(ResourceBundle.java:551) at android.databinding.tool.store.ResourceBundle$LayoutFileBundle.getBindingClassPackage(ResourceBundle.java:541) at android.databinding.tool.CompilerChef.pushClassesToAnalyzer(CompilerChef.java:124) at android.databinding.tool.CompilerChef.createChef(CompilerChef.java:73) at android.databinding.annotationprocessor.ProcessExpressions.writeResourceBundle(ProcessExpressions.java:148) at android.databinding.annotationprocessor.ProcessExpressions.onHandleStep(ProcessExpressions.java:82) at android.databinding.annotationprocessor.ProcessDataBinding$ProcessingStep.runStep(ProcessDataBinding.java:154) at android.databinding.annotationprocessor.ProcessDataBinding$ProcessingStep.access$000(ProcessDataBinding.java:139) at android.databinding.annotationprocessor.ProcessDataBinding.process(ProcessDataBinding.java:66) 如您所见,无法find方法com.google.common.base.Strings.isNullOrEmpty 。 一些细节 我使用Retrolambda 3.2.5和Java 8.没有其他额外的插件。 构建插件版本: com.android.tools.build:gradle:2.0.0 : com.android.tools.build:gradle:2.0.0 : com.android.tools.build:gradle:2.0.0 构建工具版本: 23.0.3 操作系统: OS X build.gradle看起来像这样。 […]

Android Studio 2.2预览在实现数据绑定时抛出错误

我已将我的android工作室更新为2.2预览1,并按指定应用了google和firebase的指定依赖项,但仍然收到以下错误 EmptyThrowable: Wrong dependency type: class com.android.tools.idea.databinding.DataBindingUtil$LightBRField dataBinding { enabled true }

Android数据绑定条件资源

以下是Android数据绑定的典型用法: android:background=”@{isError ? @color/red : @color/white}” 当州可以采用多个价值观时会变得更加困难。 编辑 :使用方法调用中的status属性是使其工作的唯一方法: android:background=”@{Check.getStatusColor(check.status)}” 并定义静态方法(没有@Bindable): public int getStatusColor(int status) { switch (status.get()) { case STATUS_OK: return ContextCompat.getColor(context, R.color.success); case STATUS_WARNING: return ContextCompat.getColor(context, R.color.warning); case STATUS_ERROR: return ContextCompat.getColor(context, R.color.error); default: return ContextCompat.getColor(context, R.color.idle); } } 如何在不将XML中嵌套的三元运算符(我认为不是很优雅,顺便说一句)或没有传递check.status属性的情况下实现这check.status ? 编辑:添加XML:

使用与GoogleServices插件并行的Android DataBinding插件

是否有人能够使用与GoogleServices pluginplugin并行的Android DataBinding插件? dependencies { classpath ‘com.android.tools.build:gradle:1.3.1’ classpath ‘com.google.gms:google-services:1.4.0-beta3’ classpath ‘com.android.databinding:dataBinder:1.0-rc1’ } apply plugin: ‘com.google.gms.google-services’ apply plugin: ‘com.android.databinding’ 然后整个项目爆炸了。 当我删除服务插件然后数据绑定工作。 这是gradle的堆栈跟踪。 [data binding plugin]: failed to setup data binding java.lang.NoSuchMethodError: com.android.build.gradle.AppExtension.getApplicationVariants()Lorg/gradle/api/internal/DefaultDomainObjectSet; at android.databinding.tool.DataBinderPlugin.createXmlProcessorForApp(DataBinderPlugin.java:233) at android.databinding.tool.DataBinderPlugin.createXmlProcessor(DataBinderPlugin.java:200) at android.databinding.tool.DataBinderPlugin.access$200(DataBinderPlugin.java:65) at android.databinding.tool.DataBinderPlugin$1.execute(DataBinderPlugin.java:156) at android.databinding.tool.DataBinderPlugin$1.execute(DataBinderPlugin.java:152) at org.gradle.internal.event.BroadcastDispatch$ActionInvocationHandler.dispatch(BroadcastDispatch.java:113) at org.gradle.internal.event.BroadcastDispatch$ActionInvocationHandler.dispatch(BroadcastDispatch.java:102) at org.gradle.internal.event.BroadcastDispatch.dispatch(BroadcastDispatch.java:87) at org.gradle.internal.event.BroadcastDispatch.dispatch(BroadcastDispatch.java:31) at org.gradle.messaging.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93) at com.sun.proxy.$Proxy10.afterEvaluate(Unknown Source) at […]

Android:数据绑定,notifyPropertyChanged()无法正常工作?

我正在使用Android的数据绑定库。 我的数据对象扩展了BaseObservable 。 public static class SimpleData extends BaseObservable implements Serializable { private String text, subText; private SpannableString totalText; @Bindable public SpannableString getTotalText() { return totalText; } public void setTotalText(SpannableString totalText) { this.totalText = totalText; notifyPropertyChanged(BR.totalText); } } 我的xml也绑定了 绑定发生在初始值上。 但是当我使用更改值时 object.setTotalText(someSpannableString); 更改不会反映在文本视图中。 可能是什么问题呢?

我可以将错误消息绑定到TextInputLayout吗?

我想将错误消息直接绑定到android.support.design.widget.TextInputLayout 。 我找不到通过布局设置错误的方法。 这有可能吗? 这就是我想象的工作方式:

如何使用ToggleButton执行双向数据绑定?

我的activity类中有一个ObservableBoolean字段,它绑定到我的ToggleButton的“checked”属性,如下所示: android:checked=”@{activity.editing}” 我希望这会在按钮和布尔值之间创建一个双向关系,但它只会从字段到按钮进行更改,而不是其他方式。 我做错了什么,或者这不在Android DataBinding的范围内?

数据绑定 – 如何编写多行声明?

有没有办法用DataBinding库编写多行代码? 我试过跟随,但它抱怨XML格式 android:text=”@{ viewModel.subscriptionExpiration == null ? viewModel.field1 : viewModel.field2 }” 出现以下错误: Error:(80) Error parsing XML: not well-formed (invalid token) 单行替代工作,但我觉得它不太可读: android:text=”@{viewModel.subscriptionExpiration == null ? viewModel.field1 : viewModel.field2}”

监听器绑定; 找不到塞特犬

我正在尝试实现侦听器绑定 ,但是当我运行我的代码时,我收到以下错误: Caused by: android.databinding.tool.util.LoggedErrorException: Found data binding errors. ****/ data binding error ****msg:Cannot find the setter for attribute ‘android:onClick’ with parameter type lambda on android.widget.Button. file:~/GithubBrowser/app/src/main/res/layout/loading_state.xml loc:30:31 – 30:52 ****\ data binding error **** 这是有问题的布局文件: callback.retry()}”/> 这是布局中引用的RetryCallback接口: package com.example.app.ui.common interface RetryCallback { fun retry() } 编辑 顶级build.gradle : buildscript { ext.android_tools_version = ‘3.0.0-alpha3’ ext.kotlin_version […]

Android微调器使用XML进行数据绑定并显示所选值

我正在使用新的Android数据绑定,它工作得很好。 我能够使用EditText,TextView,Radio和checkbox执行数据绑定。 现在,我无法在微调器中进行数据绑定。 在下面的链接中find了一些线索: Android spinner数据绑定与xml布局 但是,仍然无法find解决方案。 还需要执行双向数据绑定。 应该反映微调器数据的选择值。 有人可以给我看一个例子吗? 这是我的xml代码: 查看型号: public class AssessmentGetViewModel { private String valueWidth; private ArrayList values; private String type; public String getValueWidth() { return this.valueWidth; } public void setValueWidth(String valueWidth) { this.valueWidth = valueWidth; } public ArrayList getvalues() { return this.values; } public void setvalues(ArrayList values) { this.values = […]