Articles of 数据绑定

Kotlin和Android Databinding

更新于2015年6月21日 我想在同一个项目中尝试kotlin和android数据绑定。 但是当我添加到kotlin-gradle-plugin依赖项时,我甚至无法构建一个空项目,但是错误: 无法生成视图绑定器java.lang.NoClassDefFoundError:kotlin / jvm / internal / ExtensionFunctionImpl buildscript { repositories { jcenter() } dependencies { classpath ‘com.android.tools.build:gradle:1.3.0-beta3’ classpath “com.android.databinding:dataBinder:1.0-rc0” classpath “org.jetbrains.kotlin:kotlin-gradle-plugin:0.12.613” } } 任何使它协同工作的工作方法?

数据绑定中的默认值出错

如数据绑定文档中所述,我们可以使用default来检查预览窗格中的值。 如果我有如下的简单字符串,它工作得很好: android:text=”@{place, default=Columbia}” 但我有国家和国家的组合,如果我正在使用,(逗号)那么它正在创造问题。 android:text=”@{place, default=Gujarat, IN}” 它显示错误, unexpected ,如何解决? 我知道我们仍然可以使用tools:text来检查预览窗格中的输出,但是如何在default Databinding克服这个问题?

如何解决:“在使用自定义视图实现双向数据绑定时,找不到属性’android:text’”的getter?

我经历了许多类似的问题,但没有一个答案似乎解决了我的问题。 我实现了一个自定义EditText ,我希望与双向数据绑定兼容。 问题是,每次我尝试编译时都会收到错误: Error:java.lang.IllegalStateException: failed to analyze: android.databinding.tool.util.LoggedErrorException: Found data binding errors. ****/ data binding error ****msg:Cannot find the getter for attribute ‘android:text’ with value type java.lang.String on com.app.toolkit.presentation.view.CustomEditText. file:/Users/humble-student/Home/workspace/android/application/app/src/main/res/layout/login_view.xml loc:68:8 – 81:69 ****\ data binding error **** at org.jetbrains.kotlin.analyzer.AnalysisResult.throwIfError(AnalysisResult.kt:57) at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules(KotlinToJVMBytecodeCompiler.kt:137) at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:158) at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:61) at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.java:107) at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.java:51) at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:92) at org.jetbrains.kotlin.daemon.CompileServiceImpl$compile$1$2.invoke(CompileServiceImpl.kt:386) […]

使用Android-M数据绑定应用单行字体不起作用

我正在尝试将一些自定义字体应用于我的TextView ,如Lisa Wray的post中所描述的那样。 TextView是进入RecyclerView的项目的一部分 我已将数据绑定依赖项添加到我的顶级构建文件中。 classpath ‘com.android.tools.build:gradle:1.3.0’ classpath “com.android.databinding:dataBinder:1.0-rc1” 我还将插件应用到我的主模块: apply plugin: ‘com.android.application’ apply plugin: ‘com.android.databinding’ 这是将添加到RecyclerView的item.xml文件。 我添加了一个layout根元素和app:font=”@{@string/font_yekan}”结合静态setter方法: @BindingAdapter({“bind:font”}) public static void setFont(TextView textView, String fontName) { textView.setTypeface(Typeface.createFromAsset(textView.getContext().getAssets(), “fonts/” + fontName)); } 应该做的伎俩。 但是当我运行程序时,字体不会改变。 但是,当我删除上面的静态方法时,我收到以下错误: 找不到参数types为java.lang.String的属性’app:font’的setter。 所以数据绑定框架已经识别出绑定的东西,但是setter方法没有被调用(Logs不打印输出)。 这里有什么问题?

找不到属性’app:vm’的GETTER,其值types为Boolean

我正在尝试在自定义控件中使用本机双向android数据绑定 所以我在xml中有类似的东西 … … 请注意,这是关于@={} – 本地双向绑定的问题。 在代码中类似的东西: class MyControl extends RelativeLayout{ … @BindingAdapter(“app:vm”) public static void setVm(View v, VM vm){…} } 我的问题 – 我应该如何为我的viewModel定义getter? 我没有find任何关于它的指导。 我尝试了不同的方法 – 编写自定义getter,静态getter但错误仍然相同。

如何在模块(Android studio)中使用com.android.databinding?

我想用com.android.databinding: dataBinder创建一个库。 项目的build.gradle: buildscript { repositories { jcenter() } dependencies { classpath ‘com.android.tools.build:gradle:1.5.0’ classpath ‘com.android.databinding:dataBinder:1.0-rc4’ // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { jcenter() maven { url “https://jitpack.io” } //gradlew -Dhttps.proxyHost=127.0.0.1 -Dhttps.proxyPort=8580 } } task clean(type: Delete) { delete […]

Android – 视图标记在视图上不正确:null(CursorAdapter和DataBinding)

所以昨天我终于find了一些时间来尝试新的DataBinding库。 我曾尝试将它与CursorAdapter一起使用,但没有成功。 正如Androidguys在其页面上所写: 如果您在ListView或RecyclerView适配器中使用数据绑定项,您可能更喜欢使用: ListItemBinding binding = ListItemBinding.inflate(layoutInflater, viewGroup, false); //or ListItemBinding binding = DataBindingUtil.inflate(layoutInflater, R.layout.list_item, viewGroup, false); 但是在CursorAdapter中我必须将Inflating和Binding分成两种方法。 那么如何正确实现呢? 大多数情况下我得到一个exception:视图标签在视图上不正确:null private class BookCursorAdapter extends CursorAdapter { public BookCursorAdapter(Context context) { super(context, null, 0); } @Override public View newView(Context context, Cursor cursor, ViewGroup parent) { BookListItemBinding binding = DataBindingUtil.inflate(getLayoutInflater(), R.layout.book_list_item, parent, false); return binding.getRoot(); // […]

数据绑定必须包含布局文件

我有非常简单的布局,并希望切换到使用数据绑定。 现在我在controller_main.xml遇到以下错误: Error:Execution failed for task ‘:app:dataBindingProcessLayoutsDebug_pro’. **** /数据绑定错误****消息:[44 68 44 68 25]必须包含布局文件:… \ app \ src \ main \ res \ layout \ controller_main.xml **** \ data绑定错误**** 有任何想法吗? 错误说,缺少include标签中的资源android:layout id(这是我对错误的解释),但事实并非如此。 注释掉include标记会删除错误。 有谁看到这个问题? controller_main.xml view_main_header_fixed.xml

Glide显示错误:无法findGeneratedAppGlideModule

我试图使用滑动加载图像但不知何故我无法使用滑动加载图像。 因为它显示以下错误: 无法findGeneratedAppGlideModule。 您应该在com.github.bumptech.glide上包含annotationProcessor编译依赖项:在您的应用程序中使用编译器,并且将无提示地忽略@GlideModule带注释的AppGlideModule实现或LibraryGlideModules。 我也提到了这个解决方案 。 但是,我已经有了更新的滑行版本。 在我的gradle中,我补充说 implementation ‘com.github.bumptech.glide:glide:4.7.1’ 和 annotationProcessor ‘com.github.bumptech.glide:compiler:4.7.1’ 码 XML … CustomBindingAdapter public class CustomBindingAdapter { @BindingAdapter({“bind:image_url”}) public static void loadImage(ImageView imageView, String url) { RequestOptions requestOptions = new RequestOptions(); requestOptions=requestOptions.placeholder(R.drawable.boy_32); Glide.with(imageView.getContext()) .load(url) .apply(requestOptions) .into(imageView); }

ObservableInt导致DataBinding Library崩溃

我正在使用新的数据绑定库并尝试实现可观察的接口。 但无论我是否将年龄variables设置为textview,它都会一直崩溃。 如果我将agevariables转换为String,代码工作正常。 有没有办法让它与int一起工作? public class User extends BaseObservable { @Bindable public final ObservableField name = new ObservableField(); @Bindable public final ObservableInt age = new ObservableInt();} 崩溃日志: android.content.res.Resources$NotFoundException: String resource ID #0x3 at android.content.res.Resources.getText(Resources.java:274) at android.widget.TextView.setText(TextView.java:4122) at com.hipo.databinding.databinding.ActivityMainBinding.executeBindings(ActivityMainBinding.java:184) at android.databinding.ViewDataBinding.executePendingBindings(ViewDataBinding.java:321) at android.databinding.ViewDataBinding$6.run(ViewDataBinding.java:160) at android.databinding.ViewDataBinding$5.onViewAttachedToWindow(ViewDataBinding.java:130) at android.view.View.dispatchAttachedToWindow(View.java:13417) at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2707) at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2714) at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2714) at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2714) at […]