Tag: android databinding

Kotlin:Java利用日期到数据绑定的字符串

我想通过Databinding在视图中使用我的Data类的Date值。 如果我使用日期字段上的toString()方法,它将起作用。 但是我想自定义日期值。 所以我用Method创建了Utils对象。 这是Util对象 object DateUtils { fun toSimpleString(date: Date) : String { val format = SimpleDateFormat(“dd/MM/yyy”) return format.format(date) } } 但是如果我想在这样的xml中使用这个方法 … android:text=”@{DateUtils.toSimpleString(journey.date)}” 我得到一个错误cannot find method toSimpleString(java.util.Date) in class … 这是我的Dataclass: data class Journey(var title: String, var date: Date?, var destination: String) 这个代码有什么问题?

如何使用Fragment的数据绑定

我试图从官方的谷歌文档https://developer.android.com/tools/data-binding/guide.html数据绑定的例子 除了我试图将数据绑定应用于片段而不是活动。 我正在编译的错误 Error:(37, 27) No resource type specified (at ‘text’ with value ‘@{marsdata.martianSols}. onCreate的片段如下所示: @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); MartianDataBinding binding = MartianDataBinding.inflate(getActivity().getLayoutInflater()); binding.setMarsdata(this); } onCreateView的片段看起来像这样: @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { return inflater.inflate(R.layout.martian_data, container, false); } 部分我的布局文件的片段如下所示: … 我的怀疑是, MartianDataBinding不知道它应该绑定哪个布局文件 – 因此错误。 有什么建议么?

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

当我尝试为我的kotlin android项目设置unit testing时,遇到以下错误。 以前有没有遇到过这样的问题? 这已被标记为官方错误跟踪器的错误 失败:生成失败,出现exception。 * 什么地方出了错: 执行失败的任务’:app:compileDebugUnitTestJavaWithJavac’。 > java.lang.RuntimeException:无法解析数据绑定编译器选项。 PARAMS: 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选项来获得更多的日志输出。 *例外是: org.gradle.api.tasks.TaskExecutionException:对于任务“:app:compileDebugUnitTestJavaWithJavac”,执行失败。 在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.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:62) 在org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58) 在org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:88) 在org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:46) 在org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:51) 在org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54) 在org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43) 在org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34) 在org.gradle.execution.taskgraph.DefaultTaskGraphExeter $ $ EventFiringTaskWorker […]

在kotlin中平台types的智能广播

我正在使用kotlin创建我的适配器,它在android中扩展了BaseAdapter 。 下面是getView方法内部的代码 override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View? { var binding : ImageBinding var conView = convertView if(conView == null){ binding = DataBindingUtil.inflate(LayoutInflater.from(parent?.context), R.layout.image, parent, false) conView = binding.root; conView.tag = binding }else { binding = conView.getTag() as ImageBinding } return conView; } conView.tag = binding和binding = conView.getTag()突出显示粉红色的颜色。当我hover在conView.tag = binding与我的鼠标popup式消息智能转换到android.view.View! 。 […]

Android数据绑定与自定义适配器

我试图使用Android的数据绑定function与自定义适配器和ListView。 我无法覆盖自定义适配器的getView方法: public class ChecksAdapter extends ArrayAdapter { public ChecksAdapter(Context context, ObservableList checks) { super(context, R.layout.check, checks); } @Override public View getView(int position, View convertView, ViewGroup parent) { CheckBinding binding = DataBindingUtil.inflate( LayoutInflater.from(getContext()), R.layout.check, parent, false); binding.setCheck(this.getItem(position)); // Return what? } } 所以我的问题是: 我在哪里得到我应该返回的View元素? 或者换句话说,我怎样才能将对象绑定到充气/转换视图? 如何在使用数据绑定时重用convertView ? 这是实现这个的正确方法吗? 该指南不是很清楚ListViews 以下是指南中唯一的ListViews参考: 如果您在ListView或RecyclerView适配器内使用数据绑定项目,则可能更愿意使用: ListItemBinding binding = ListItemBinding.inflate(layoutInflater, […]

使用LiveData和数据绑定

随着Android体系结构组件的稳定,我开始将所有的基本ViewModel更新为ViewModel的新实现。 在我的理解中,建议使用LiveData来保存Model类,因为它更好地处理生命周期。 我喜欢使用Data Binding因为它使得代码在Java / Kotlin方面更加清晰,并且不需要“观察”值更改来更新UI。 然而,如果Model (或ViewModel)扩展了BaseObservable而LiveData则不扩展, LiveData使用Data Binding的布局只能监视数据的变化。 我明白LiveData的主要目标之一是观察和更新用户界面编程,但对于简单的更新, Data Binding是非常有用的。 这个问题已经被报道( GitHub和堆栈溢出 ),首先是说1.0版本会有,现在说这个function正在开发中。 为了同时使用LiveData和Data Binding ,我创建了一个扩展BaseObservable类的非常简单的实现: import android.arch.lifecycle.LiveData import android.arch.lifecycle.MutableLiveData import android.databinding.BaseObservable class ObservableMutableLiveData() : BaseObservable() { private var data: MutableLiveData = MutableLiveData() constructor(data: T) : this() { this.data.value = data } public fun set(value: T) { if (value != data.value) { […]

Android上的Dagger 2,缺少错误信息

我在我的Android项目中使用Dagger 2,并且在调试时遇到了麻烦。 我知道编译失败,因为我的匕首2设置(之前有过)的错误,但它几乎是不可能的,因为我没有得到一个正确的错误信息告诉我问题在哪里。 我所得到的是显示注释处理失败的消息。 沿着: Error:Execution failed for task ‘:app:compileDebugJavaWithJavac’. > Compilation failed; see the compiler error output for details. Error:(14, 28) error: cannot find symbol class BR Error:(17, 40) error: package com.some.package.databinding does not exist Error:(17, 51) error: cannot find symbol class DaggerSomeComponent … 也许这与我正在使用数据绑定的事实有某种关系! 我使用的是Dagger 2.5,Gradle插件2.1.2和android-apt 1.8。 谢谢你的帮助!

msg:在数据绑定中找不到属性“android:text”的值types为java.lang.String的getter?

我试图在edittext中使用数据绑定,在早上它工作正常,但突然得到了错误: ****/ data binding error ****msg:Cannot find the getter for attribute ‘android:text’ with value type java.lang.String on android.widget.EditText. file:/home/itstym/ApkProjects/Reminder/app/src/main/res/layout/activity_main.xml loc:20:4 – 34:40 ****\ data binding error **** 在20:4 – 34:40的EditText 持有人: @Bindable var userEmailAddress:String = String() set(userEmailAddress){ field=userEmailAddress notifyPropertyChanged(R.id.email_address) /*to check Email for validation on every character inserted by user*/ notifyPropertyChanged(BR.errorEmail) } get() { return […]

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一起工作有什么需要做的吗?

Kotlin stdlib和Databinding

是否有可能在xml中使用Kotlin stdlib中的方法? 例如这个代码 产生编译错误 执行任务失败:app:compileDevDebugJavaWithJavac’。 java.lang.RuntimeException:发现数据绑定错误。 **** / data binding error **** msg:无法在类java.lang.String文件中find方法isNotEmpty():D:\ Projects \ PushTracker -Android \ app \ src \ main \ res \ layout \ fragment_appointment_simple_details。 xml loc:104:44 – 104:70 **** \数据绑定错误**** 很明显,数据绑定试图find方法isNotEmpty()在Java的字符串,但我可以强制数据绑定编译器使用kotlin的字符串?