Kotlin 使用Lambda來設(shè)置回調(diào)的操作
使用Kotlin的Lambda表達(dá)式,我們可以拋棄回調(diào)接口的使用。只需設(shè)置希望后面會(huì)被調(diào)用的函數(shù)即可。
示例如下
新建一個(gè)Kotlin類
class MyBean {
fun testcallback1(callback: (String) -> Unit) {
callback.invoke("這是回調(diào)的內(nèi)容")
}
fun testcallback2(value1: Int, value2: Int, callback: (Int, Int) -> Int): Int {
var result = callback.invoke(value1, value2)
return result * 3
}
}
進(jìn)行調(diào)用
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("計(jì)算結(jié)果" + result.toString())
}
}
最后顯示的結(jié)果
testcallback1的toast顯示為: "這是回調(diào)的內(nèi)容"
testcallback2將value1和value2相加,最后再乘以3,故toast顯示為9
補(bǔ)充知識(shí):kotlin 定義接口并實(shí)現(xiàn)回調(diào)
開發(fā)環(huán)境 android studio 3.0.1 已支持 kotlin
1、定義接口
interface CallBack{
fun callBack(info : String)
}
2、實(shí)現(xiàn)接口 : 為繼承\(zhòng)實(shí)現(xiàn)
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、定義帶回調(diào)方法的函數(shù)
private fun initData(callBack : CallBack):Boolean{
callBack?.callBack("我來自回調(diào)")
return true
}
4、實(shí)現(xiàn)回調(diào),調(diào)用方式與實(shí)現(xiàn)接口對(duì)應(yīng)
initData(CallBacks())
或者
initData(mCallBack)
打印結(jié)果:

以上這篇Kotlin 使用Lambda來設(shè)置回調(diào)的操作就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Android實(shí)現(xiàn)簡(jiǎn)單QQ登錄頁面
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)簡(jiǎn)單QQ登錄頁面,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-04-04
Android編程實(shí)現(xiàn)等比例顯示圖片的方法
這篇文章主要介紹了Android編程實(shí)現(xiàn)等比例顯示圖片的方法,實(shí)例分析了Android等比例縮放圖片的具體步驟與相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-11-11
Android中使用LayoutInflater要注意的一些坑
LayoutInflater類在我們?nèi)粘i_發(fā)中經(jīng)常會(huì)用到,最近在使用中就遇到了一些問題,所有下面這篇文章主要給大家總結(jié)了關(guān)于Android中使用LayoutInflater要注意的一些坑,希望通過這篇能讓大家避免走一些彎路,需要的朋友可以參考學(xué)習(xí),下面來一起看吧。2017-04-04
Android中點(diǎn)擊按鈕啟動(dòng)另一個(gè)Activity及Activity之間傳值問題
這篇文章主要介紹了Android中點(diǎn)擊按鈕啟動(dòng)另一個(gè)Activity及Activity之間傳值問題,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-01-01
Android開發(fā)中的9個(gè)常見錯(cuò)誤和解決方法
這篇文章主要介紹了Android開發(fā)中的9個(gè)常見錯(cuò)誤和解決方法,這是Android開發(fā)中最常見的9個(gè)錯(cuò)誤,經(jīng)過各種各樣的整理,以及和熱心網(wǎng)友討論總結(jié)而來,需要的朋友可以參考下2015-01-01
淺析Android企業(yè)級(jí)開發(fā)數(shù)據(jù)綁定技術(shù)
這篇文章通過代碼實(shí)例分析了Android企業(yè)級(jí)開發(fā)數(shù)據(jù)綁定技術(shù)的應(yīng)用以及相關(guān)的原理知識(shí),跟著小編一起學(xué)習(xí)參考下吧。2017-12-12
android自定義Camera實(shí)現(xiàn)錄像和拍照
這篇文章主要為大家詳細(xì)介紹了android自定義Camera實(shí)現(xiàn)錄像和拍照功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-05-05

