一个回调
class TestCallbackA {
var mCallBack: ((str: String) -> Unit)? = null
fun setCallback(myCallBack: ((str: String) -> Unit)) {
this.mCallBack = myCallBack
}
}
private fun testA() {
val testCallbackA = TestCallbackA()
testCallbackA.setCallback {
println("callback : $it")
}
}
多回调
class TestCallbackB {
var mSuccessCallback: (String) -> Unit? = {}
var mFailCallback: (String) -> Unit? = {}
fun setCallback(successCallback: (String) -> Unit,
failCallback: (String) -> Unit) {
this.mSuccessCallback = successCallback
this.mFailCallback = failCallback
}
fun init() {
mSuccessCallback("b success message")
mFailCallback("b fail message")
}
}
private fun testB() {
val testCallbackB = TestCallbackB()
testCallbackB.setCallback({
println("b success : $it")
}, {
println("b failure : $it")
})
testCallbackB.init()
}
多参数
class TestCallbackC {
var mSuccessCallback: (String, Boolean) -> Unit? = { _, _ -> }
var mFailCallback: (String) -> Unit? = {}
fun setCallback(successCallback: (String, Boolean) -> Unit,
failCallback: (String) -> Unit) {
this.mSuccessCallback = successCallback
this.mFailCallback = failCallback
}
fun init() {
mSuccessCallback("c success message", false)
mFailCallback("c fail message")
}
}
private fun testC() {
val testCallbackC = TestCallbackC()
testCallbackC.setCallback({ a, b ->
println("c success : $a - $b")
}, {
println("c failure : $it")
})
testCallbackC.init()
}