Kotlin 使用Lambda來設(shè)置回調(diào)的操作
使用Kotlin的Lambda表達(dá)式,我們可以拋棄回調(diào)接口的使用。只需設(shè)置希望后面會被調(diào)用的函數(shù)即可。
示例如下
新建一個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ǔ)充知識: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)接口對應(yīng)
initData(CallBacks())
或者
initData(mCallBack)
打印結(jié)果:
以上這篇Kotlin 使用Lambda來設(shè)置回調(diào)的操作就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Android編程實(shí)現(xiàn)等比例顯示圖片的方法
這篇文章主要介紹了Android編程實(shí)現(xiàn)等比例顯示圖片的方法,實(shí)例分析了Android等比例縮放圖片的具體步驟與相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-11-11Android中使用LayoutInflater要注意的一些坑
LayoutInflater類在我們?nèi)粘i_發(fā)中經(jīng)常會用到,最近在使用中就遇到了一些問題,所有下面這篇文章主要給大家總結(jié)了關(guān)于Android中使用LayoutInflater要注意的一些坑,希望通過這篇能讓大家避免走一些彎路,需要的朋友可以參考學(xué)習(xí),下面來一起看吧。2017-04-04Android中點(diǎn)擊按鈕啟動另一個Activity及Activity之間傳值問題
這篇文章主要介紹了Android中點(diǎn)擊按鈕啟動另一個Activity及Activity之間傳值問題,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2020-01-01淺析Android企業(yè)級開發(fā)數(shù)據(jù)綁定技術(shù)
這篇文章通過代碼實(shí)例分析了Android企業(yè)級開發(fā)數(shù)據(jù)綁定技術(shù)的應(yīng)用以及相關(guān)的原理知識,跟著小編一起學(xué)習(xí)參考下吧。2017-12-12android自定義Camera實(shí)現(xiàn)錄像和拍照
這篇文章主要為大家詳細(xì)介紹了android自定義Camera實(shí)現(xiàn)錄像和拍照功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-05-05