gpt4 book ai didi

android - 如何在数据绑定(bind)中不将参数传递给具有默认值的参数

转载 作者:行者123 更新时间:2023-12-02 12:44:56 26 4
gpt4 key购买 nike

是否可以在不传递参数的情况下使用 XML 中的默认参数调用 Kotlin 函数
这是我的 View 模型:

class MyViewModel: ViewModel(){

fun doSomething(myVar: String = "defValue"){

}
}
XML:
....
<data>
<variable
name="viewModel"
type="com.example.MyViewModel" />
</data>
....
android:onClick="@{(view) -> viewModel.doSomething()}" --> ERROR
android:onClick="@{(view) -> viewModel.doSomething(`SomeString`)}" --> WORKING
....
当我调用 doSomething没有来自带有数据绑定(bind)的 XML 参数的方法我收到错误。
[databinding] {"msg":"cannot find method doSomething() in class com.example.MyViewModel","file":"app\\src\\main\\res\\layout\\fragment_list.xml","pos":[{"line0":56,"col0":41,"line1":56,"col1":65}]}

最佳答案

使用 @JvmOverloads 注释您的 Kotlin 方法. Java 没有默认参数的概念。此注解让 Kotlin 编译器生成一个无参数方法,因此您可以依次从 Java 和数据绑定(bind) XML 调用它。
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.jvm/-jvm-overloads/

关于android - 如何在数据绑定(bind)中不将参数传递给具有默认值的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62709712/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com