[英]Kotlin stdlib and Databinding
是否可以在xml中使用Kotlin stdlib中的方法? 例如此代码
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:textColor="#333333"
android:text="@{viewModel.note}"
android:visibility="@{viewModel.note.isNotEmpty ? View.VISIBLE : View.GONE}"/>
产生编译错误
任务':app:compileDevDebugJavaWithJavac'的执行失败。 java.lang.RuntimeException:发现数据绑定错误。 **** /数据绑定错误**** msg:在类java.lang.String文件中找不到方法isNotEmpty():D:\\ Projects \\ PushTracker-Android \\ app \\ src \\ main \\ res \\ layout \\ fragment_appointment_simple_details。 xml loc:104:44-104:70 **** \\数据绑定错误****
显然,数据绑定试图在Java的String中找到方法isNotEmpty()
,但是我可以强制数据绑定编译器使用kotlin的String吗?
“ kotlin的字符串”不存在。 Kotlin的标准库定义了扩展方法来创建您要引用的方法。 但是由于数据绑定库需要生成Java代码,因此无法找到您所引用的方法。
为了使用该方法,您将需要使用Java调用它的方法来调用它,这是一个静态函数:
kotlin.text.StringsKt.isNotEmpty(viewModel.note)
编辑:此方法用@InlineOnly
注释,因此该方法可能不在Kotlin代码之外。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.