温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎么在Kotlin中使用Lambda设置回调作

发布时间:2021-03-20 15:27:42 来源:亿速云 阅读:157 作者:Leah 栏目:移动开发

今天就跟大家聊聊有关怎么在Kotlin中使用Lambda设置回调作,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

新建一个Kotlin类

class MyBean {   fun testcallback1(callback: (String) -> Unit) {     callback.invoke("这是回调的内容")   }   fun testcallback2(value1: Int, value2: Int, callback: (Int, Int) -> Int): Int {     var result = callback.invoke(value1, value2)     return result * 3   } }

进行调用

class MainActivity : AppCompatActivity() {   override fun onCreate(savedInstanceState: Bundle?) {     super.onCreate(savedInstanceState)     var bean = MyBean()     bean.testcallback1 { m -> toast(m) }     val result = bean.testcallback2(1, 2, { value1, value2 -> value1 + value2 })     toast("计算结果" + result.toString())   } }

最后显示的结果

testcallback1的toast显示为: "这是回调的内容"
testcallback2将value1和value2相加,最后再乘以3,故toast显示为9

补充知识:kotlin 定义接口并实现回调

开发环境 android studio 3.0.1 已支持 kotlin

1、定义接口

interface CallBack{   fun callBack(info : String) }

2、实现接口 : 为继承\实现

class CallBacks : CallBack{   override fun callBack(info : String){     Log.d("MainApp","current info $info")   } }

或者

private var mCallBack = object : CallBack{   override fun callBack(info : String){     Log.d("MainApp","current info $info")   } }

3、定义带回调方法的函数

private fun initData(callBack : CallBack):Boolean{   callBack?.callBack("我来自回调")   return true }

4、实现回调,调用方式与实现接口对应

initData(CallBacks())

或者

initData(mCallBack)

打印结果:

怎么在Kotlin中使用Lambda设置回调作

看完上述内容,你们对怎么在Kotlin中使用Lambda设置回调作有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI