用 kotlin 的方式自定义回调事件(kotlin函数参数)

用 kotlin 的方式自定义回调事件(kotlin函数参数)


提示:本篇发表于两年前,当时图片处理上有些画蛇添足,但是我觉得并不影响我想要表达的内容。如果您在阅读以下内容时感觉身体不适,请出门右转就好,谢谢~

java 中自定义回调事件的写法

创建 interface类,创建 interface 对象,实现 set 方法:
这里写图片描述
使用:
这里写图片描述


kotlin 中自定义点击事件写法

依照 java 的思想(不推荐)

创建 interface类,创建 interface 可变对象(var)
这里写图片描述
使用:
这里写图片描述

利用 kotlin 函数作为参数(强烈推荐)

来看一下系统的点击事件在 kotlin 中是什么样的:
这里写图片描述
是不是简直简洁到不像话?再看看你自己定义的点击事件回调,感觉跟还在用 java 开发一样…
下面就来看个新的写法:
创建一个函数对象,在需要回调的地方调起这个函数:
这里写图片描述
用法:
这里写图片描述
是不是比用对象表达式看起来还要简洁?


2018.12.12 更新:

上边截图里的 kotlin 点击事件回调,还有更简洁的定义方法:

在这里插入图片描述
之前的写法是声明不可为 null 的函数变量,然后判断是否初始化再去 invoke 函数。
现在声明可为 null 的函数变量,在 invoke 函数的时候用 ?. 表示函数变量可空,如果没有给这个点击事件函数赋值的话,这行代码也不会引起 crash。现在连判断条件都不需要了,更精简了。

这里再说点个人经验,如果你的回调方法不止一个的话,推荐还是声明 interface 来做,这样的话都在一个 interface 里边好管理一些

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值