android - 数据绑定(bind)表达式中的调用扩展

标签 android kotlin android-databinding kotlin-extension

我想知道是否有任何方法可以在表达式属性中调用扩展,

对于例如,这是一些扩展

fun String.parseServerDate():String{
 ...
}

要在 kotlin 中调用,我们使用 myTime.parseServerDate()

所以,我的问题是如何用表达式语言调用此扩展

尝试过@{mydate.parseServerDate()}这不起作用

我尝试将我的扩展 kt 文件导入 <import>标签,但似乎什么也没发生

最佳答案

不能在 XML 中使用扩展函数

您可以做的是为您想要对 View 执行的任何操作创建一个数据绑定(bind)适配器,或者创建一个对象并将函数放入其中,以便您可以在任何您喜欢的地方使用它

object Functions{
   fun parseServerDate(string : String) {
   ...
   }
}



//in xml

<import type="the object path"/>

@{Functions.parseServerDate(data.string)}

为了让我为您提供更多帮助,您必须更具体地说明您想要做什么,即扩展函数的作用

您可以在此处阅读有关绑定(bind)适配器的信息 https://developer.android.com/topic/libraries/data-binding/binding-adapters

关于android - 数据绑定(bind)表达式中的调用扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58166175/

相关文章:

Android - ListView 禁用项目部分标题中的按下效果

android - 如何使用Kotlin在 Volley 请求中添加自定义 header

android - 如何将数据从 FCM 的 onMessageReceived() 发送到 Fragment?

Android 房间数据库迁移运行多次

java - 数据绑定(bind)时如何在android XML中写三元操作条件

java - Android 开发中的协程仅适用于 Kotlin?使用 MVVM 从 android room 检索,如何让 id 立即返回到 Activity?

java - 不在 Android Studio 中工作的教师应用百分比

android - ruby on rails 中用于 Android 操作系统的 API

Android 数据绑定(bind)库 - Unresolved reference

即使设置了lifecycleOwner,Android Fragment ViewModel数据绑定(bind)也不会更新UI