新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
今天就跟大家聊聊有关怎么在Kotlin中使用Lambda设置回调作,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
老河口ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:13518219792(备注:SSL证书合作)期待与您的合作!
新建一个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设置回调作有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注创新互联行业资讯频道,感谢大家的支持。