今天就跟大家聊聊有关怎么在Kotlin中使用Lambda设置回调作,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
新建一个Kotlin类
classMyBean{
funtestcallback1(callback:(String)->Unit){
callback.invoke("这是回调的内容")
}
funtestcallback2(value1:Int,value2:Int,callback:(Int,Int)->Int):Int{
varresult=callback.invoke(value1,value2)
returnresult*3
}
}
进行调用
classMainActivity:AppCompatActivity(){
overridefunonCreate(savedInstanceState:Bundle?){
super.onCreate(savedInstanceState)
varbean=MyBean()
bean.testcallback1{m->toast(m)}
valresult=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、定义接口
interfaceCallBack{
funcallBack(info:String)
}
2、实现接口 : 为继承\实现
classCallBacks:CallBack{
overridefuncallBack(info:String){
Log.d("MainApp","currentinfo$info")
}
}
或者
privatevarmCallBack=object:CallBack{
overridefuncallBack(info:String){
Log.d("MainApp","currentinfo$info")
}
}
3、定义带回调方法的函数
privatefuninitData(callBack:CallBack):Boolean{
callBack?.callBack("我来自回调")
returntrue
}
4、实现回调,调用方式与实现接口对应
initData(CallBacks())
或者
initData(mCallBack)
打印结果:
看完上述内容,你们对怎么在Kotlin中使用Lambda设置回调作有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注恰卡编程网行业资讯频道,感谢大家的支持。