Articles of android databinding

Android – 带有Preference活动的DataBinding

我在xml中设置数据绑定但是当我转到首选项活动以实际设置绑定时我不能。 数据绑定xml所在的文件名为preference.xml,因此我假设应该有一个名为PreferencesBinding的生成类,而不是。 它应该不是自动生成的吗? 另外,我在preferenceActivity.java中的代码不会编译以下内容: Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); PreferencesBinding binding = DataBindingUtil….. //what do put here ??? this is preferenceactivity not Activity Admin user = new Admin(true); binding.setUser(user);//this what i want to do addPreferencesFromResource(R.xml.preferences);//this would not be necessary if i can get dataBinding to work //..rest of code not important } 我开始认为数据绑定不适用于偏好屏幕,任何人都可以帮忙吗? […]

自定义视图上的自定义侦听器的数据绑定

我正在尝试使用新的Android数据绑定库绑定自定义视图上的事件,但遇到了问题。 这是我的自定义视图的相关部分: public class SuperCustomView extends FrameLayout { private OnToggleListener mToggleListener; public interface OnToggleListener { void onToggle(boolean switchPosition); } public void setOnToggleListener(OnToggleListener listener) { mToggleListener = listener; } …/… } 我正在尝试使用此自定义视图并使用以下内容绑定onToggle事件: toggleStrokeLimitation是控制器上的一种方法: public void toggleStrokeLimitation(boolean switchPosition) { maxStrokeEnabled.set(switchPosition); } 编译时出现此错误: > java.lang.RuntimeException: Found data binding errors. ****/ data binding error ****msg:Cannot find the setter for […]

Android MVVM startActivity的最佳实践

我正在使用MVVM和DataBinding构建Android应用程序。 我在ViewModel中有一个函数来启动一个Activity。 是否可以在ViewModel中进行onClick调用? 喜欢这个。 public class MyViewModel { public void onClick(View view, long productId) { Context context = view.getContext(); Intent intent = new Intent(context, ProductDetailActivity.class); intent.putExtra(“productId”, productId); context.startActivity(intent); } } 在我的XML中: … android:onClick=”@{(v) -> viewModel.onClick(v, viewModel.product.id)}”> 或者将它移动到View并从EventBus或Rx调用它并在我的ViewModel中只有POJO是最佳做法吗?

Kotlin 1.2.50要求baseFeatureInfoDir

当我用一个Android项目切换时 classpath ‘com.android.tools.build:gradle:3.2.0-alpha18′ 至 classpath “org.jetbrains.kotlin:kotlin-gradle-plugin:1.2.50” 我遇到了 什么地方出了错: 在任务’:detector:kaptDebugKotlin’的配置中发现了一些问题。 目录’〜/ project / build / intermediates / feature_data_binding_base_feature_info / debug / dataBindingExportFeaturePackageIdsDebug / out’为属性’annotationProcessorOptionProviders指定$ kotlin_gradle_plugin。$ 0. $ 0.baseFeatureInfoDir’不存在。 为属性’databinding.baseFeatureInfoDir’指定的目录’〜/ project / build / intermediates / feature_data_binding_base_feature_info / debug / dataBindingExportFeaturePackageIdsDebug / out’不存在。 使用classpath ‘com.android.tools.build:gradle:3.1.3’它可以正常工作

android数据绑定unit testing错误无法解析数据绑定编译器选项。 PARAMS:

当我尝试为我的kotlin android项目设置unit testing时,我遇到了以下错误。 以前有人遇到过这种问题吗? 这已被标记为官方错误跟踪器上的错误 FAILURE:构建因exception而失败。 *出了什么问题:任务执行失败’:app:compileDebugUnitTestJavaWithJavac’。 > java.lang.RuntimeException:无法解析数据绑定编译器选项。 参数:kapt.annotations:/Users/trevor/Dev/Android/workspace/gitlab-example/app/build/tmp/kapt/debugUnitTest/wrappers/annotations.debugUnitTest.txt kapt.kotlin.generated:/ Users / trevor / Dev / Android / workspace / gitlab-example / app / build / tmp / kapt / debugUnitTest / kotlinGenerated *尝试:使用–info或–debug选项运行以获得更多日志输出。 *exception是:org.gradle.api.tasks.TaskExecutionException:任务执行失败’:app:compileDebugUnitTestJavaWithJavac’。 在org.gradle上的org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:84)org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:55)位于org.gradle.api.internal的org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)上的.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:62)位于org.gradle.api.internal.tasks.execution的org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:46).tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:88) .skipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:51)org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTas 位于org.gradle.exe。执行(CatchExceptionTaskExecuter.java:34)的orE.gradle.execution.taskgraph.DefaultTaskGraphExecuter $ EventFiringTaskWorker $ 1.execute(DefaultTaskGraphExecuter)中的kExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43) .java:236)在org.gradle上的org.gradle.execution.taskgraph.DefaultTaskGraphExecuter $ EventFiringTaskWorker $ 1.execute(DefaultTaskGraphExecuter.java:228)org.gradle.internal.Transformers $ 4.transform(Transformers.java:169)。 org.gradle.internal.progress.DefaultOperationExecutor.run(DefaultBuildOperationExecutor.java:61)中的internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:106)org.gradle.execution.taskgraph.DefaultTaskGraphExecuter $ EventFiringTaskWorker.execute(DefaultTaskGraphExecuter。 java:228)org.gradle.execution.taskgraph.DefaultTaskGraphExecuter […]

Android绑定适配器传递多个参数会导致错误

我是Android Data Binding新手。 我正在学习本教程: 数据绑定库 。 我正在尝试使用接收多个参数的适配器。 这是我的代码: XML 绑定适配器类 public class ViewBindingAdapters extends BaseObservable { @BindingAdapter({“bind:url”, “bind:size”}) public static void loadImage(ImageView imageView, String url, int size) { if (!Strings.isNullOrEmpty(url)) { Picasso.with(imageView.getContext()).load(url).resize(size, size).centerCrop().into(imageView); } } …. } 但是我收到了这个错误: java.lang.RuntimeException:发现数据绑定错误。 **** /数据绑定错误****消息:在android.widget.ImageView上找不到参数types为java.lang.String的属性’app:url’的setter。 file:… li_image_item.xml loc:30:27 – 30:40 **** \ data binding error **** 有谁知道为什么? 提前致谢!

Android数据绑定和Kotlin

我正在将我的Android应用程序从Java转换为Kotlin。 它正常工作,除非我尝试转换使用Android数据绑定库的文件。 在这种情况下,Android Studio会在编译时抱怨未解析的引用: Error:(10, 44) Unresolved reference: AdapterHistoriesListBinding 其中AdapterHistoriesListBinding是应由数据绑定库生成的文件的名称。 它在Java中正常工作,所以我猜这是Kotlin的一个问题。 我使用的是Android Studio 2.0.0-beta6,Android Gradle Plugin 2.0.0-beta6和Kotlin 1.0。 有没有什么可以使数据绑定库与Kotlin一起工作?

如何将架构组件与Android上的数据绑定相结合?

我开发了基于android数据绑定库的应用程序: https : //developer.android.com/topic/libraries/data-binding/index.html class SignInViewModel extends BaseObservable { @Bindable public String getLogin() { return login; } @Bindable public String getPassword() { return password; } } 现在我想使用新库中的ViewModelProviders: https : //developer.android.com/topic/libraries/architecture/guide.html SignInViewModel signInViewModel = ViewModelProviders.of(this).get(SignInViewModel.class); 它如何结合? 任何想法? 或者应该结合这两个库? 编辑 我改为: class SignInViewModel extends ViewModel { public ObservableField login = new ObservableField(“”); public ObservableField password = new […]

什么是android数据绑定中的“DataBindingComponent”类?

我在官方API文档中看到了DataBindingComponent。 https://developer.android.com/reference/android/databinding/DataBindingUtil.html 在编译期间生成此接口以包含所有使用的实例BindingAdapter的getter。 当BindingAdapter是实例方法时,必须实例化实现该方法的类的实例。 这个接口将使用getter为每个类生成,其名称为get *,其中*是声明BindingAdapter类/接口的简单类名。 将通过向getter添加数字后缀来解析名称冲突。 也可以将此类的实例作为第一个parameter passing给static或实例BindingAdapters。 如果使用Dagger 2,开发人员应扩展此接口并将扩展接口注释为Component。 但是,我在Web中找不到此类的任何示例用法。 任何人都可以知道它是什么以及如何使用它。 我试着制作一些简单的代码并调试它以查看它是什么,但它在variables上显示了nullvariables。 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ActivityMainBinding binding= DataBindingUtil.setContentView(this,R.layout.activity_main); android.databinding.DataBindingComponent a = DataBindingUtil.getDefaultComponent(); setContentView(binding.getRoot()); }

使用Integertypes的Android双向绑定导致数据绑定不存在

我在使用Integer数据types实现双向绑定时遇到了一些问题。 public class User { private String firstName; private String lastName; private int age; public User() {} public void setFirstName(String firstName) { this.firstName = firstName; } public String getFirstName() { return this.firstName; } public void setLastName(String lastName) { this.lastName = lastName; } public String getLastName() { return this.lastName; } public void setAge(int age) { this.age […]