我该如何在Android数据绑定中绑定并调用`函数类型`?

theapache64

我有一个类型的变量,(position: Int) -> Unit我想像这样从xml调用方法android:onClick="@{theMethod.invoke(someInt)}

有可能吗,那我该怎么办呢?

弗雷德

我的处理方法如下。您拥有的方法将与该类相对应kotlin.jvm.functions.Function1因此,想法是在XML中这样声明:

<data>
    <import type="kotlin.jvm.functions.Function1"/>
    <import type="kotlin.Unit"/>

    <variable
        name="theMethod"
        type="Function1&lt;Integer, Unit>"/>
</data>

它看起来不漂亮,但是可以用。我们导入所需的内容,然后声明所需类型的绑定变量。请注意,<在尝试定义通用类型时,该字符是非法的,因此我们使用&lt;

现在,它应该易于使用。我这样做:

android:onClick="@{_ -> theMethod.invoke(someInt)}"

的方法签名onClick要求我们传递一种接收类型为type的参数的方法View我对使用它不感兴趣,因此我将其声明为_传递给的lambda onClick然后在lambda中调用我想要的方法。

我一直在努力不将逻辑放在XML中,但是我允许自己使用这些捷径,因为我并不真正将它们视为业务逻辑。

希望能帮助到你。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从数据绑定Android调用Kotlin函数类型

如何在函数参数中绑定类型

如何在函数中绑定 this?

如何在抽象接口块中为延迟绑定指定函数接口作为类型绑定过程?

如何在Android自定义数据绑定中传递带有参数的函数

我如何在jQuery中获取数据绑定值

如何从Android中的数据绑定访问Kotlin Lambda函数

如何在Android中实现Livedata和数据绑定?

如何在Guice中绑定Kotlin函数

如何区分绑定的可调用成员引用和Kotlin中相同类型的函数?

如何在WPF中设置数据绑定

如何在View中绑定数据

Android:使用数据绑定调用ViewModel函数

如何在React Native中从绑定到平面列表的不同组件调用函数

如何使用android数据绑定绑定事件

如何从Xamarin形式的绑定命令中调用函数

如何在kendo数据绑定函数中找到元素

如何从我的绑定调用方法并在 iOS 中覆盖?

使用函数调用敲除数据绑定

数据绑定 - 无法从布局文件调用函数

如何在Android中创建自定义数据绑定?(Android Studio)

如何调用FireMonkey中的数据感知(实时绑定)组件的刷新?

如何在对象中应用,绑定和调用方法

如何在android java中的数据绑定recyclerview适配器中创建2列

如何在Android中绑定Service并从该服务中获取数据?

如何在Java内部类中定义绑定类型参数

如何在Knockout.js中绑定输入类型“时间”

如何在C绑定中具有数组类型?

Android数据绑定-如何在数据绑定中使用ViewStub