Str*_*ove 0 android kotlin android-databinding
我有一个格式化一些文本的函数
fun String.formatTo(): String {
if (this.isNotEmpty()) {
val value = this.toDouble()
return "%.02f".format(value)
}
return ""
}
Run Code Online (Sandbox Code Playgroud)
我想使用数据绑定将这种乐趣应用到我的 textView 中,所以我调用了 textView ,在我的布局android:text="@{viewModel.text.formatTo()}"中导入类data
<data>
<import type="com.project.utils.extensions.ExtKt"/>
<variable
name="viewModel"
type="com.project.ViewModel" />
</data>
Run Code Online (Sandbox Code Playgroud)
但我在构建时遇到了错误:
Found data binding errors.
****/ data binding error ****msg:cannot find method formatTo() in class java.lang.String
Run Code Online (Sandbox Code Playgroud)
什么是问题?
创建一个object命名的ExtKt(或任何你想要的)并在其中定义你的扩展函数并用@JvmStatic如下注释它
@JvmStatic
fun String.formatTo(): String {
if (this.isNotEmpty()) {
val value = this.toDouble()
return "%.02f".format(value)
}
return ""
}
Run Code Online (Sandbox Code Playgroud)
更新
android:text="@{ExtKt.formatTo()}"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2000 次 |
| 最近记录: |