利用 kotlin 的方式自定義回調(diào)事件(kotlin函數(shù)參數(shù))
java 中自定義回調(diào)事件的寫法
創(chuàng)建 interface類,創(chuàng)建 interface 對象,實(shí)現(xiàn) set 方法:
使用:
kotlin 中自定義點(diǎn)擊事件寫法
依照 java 的思想(不推薦)
創(chuàng)建 interface類,創(chuàng)建 interface 可變對象(var)
使用:
利用 kotlin 函數(shù)作為參數(shù)(強(qiáng)烈推薦)
來看一下系統(tǒng)的點(diǎn)擊事件在 kotlin 中是什么樣的:
是不是簡直簡潔到不像話?再看看你自己定義的點(diǎn)擊事件回調(diào),感覺跟還在用 java 開發(fā)一樣…
下面就來看個(gè)新的寫法:
創(chuàng)建一個(gè)函數(shù)對象,在需要回調(diào)的地方調(diào)起這個(gè)函數(shù):
用法:
是不是比用對象表達(dá)式看起來還要簡潔?
2018.12.12 更新:
上邊截圖里的 kotlin 點(diǎn)擊事件回調(diào),還有更簡潔的定義方法:
之前的寫法是聲明不可為 null 的函數(shù)變量,然后判斷是否初始化再去 invoke 函數(shù)。
現(xiàn)在聲明可為 null 的函數(shù)變量,在 invoke 函數(shù)的時(shí)候用 ?. 表示函數(shù)變量可空,如果沒有給這個(gè)點(diǎn)擊事件函數(shù)賦值的話,這行代碼也不會(huì)引起 crash?,F(xiàn)在連判斷條件都不需要了,更精簡了。
這里再說點(diǎn)個(gè)人經(jīng)驗(yàn),如果你的回調(diào)方法不止一個(gè)的話,推薦還是聲明 interface 來做,這樣的話都在一個(gè) interface 里邊好管理一些
以上這篇利用 kotlin 的方式自定義回調(diào)事件(kotlin函數(shù)參數(shù))就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Android實(shí)現(xiàn)循環(huán)輪播跑馬燈的效果
這篇文章主要介紹了為大家詳細(xì)介紹了如何通過Android實(shí)現(xiàn)循環(huán)輪播跑馬燈的效果,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-05-05Android8.0適配前臺(tái)定位服務(wù)service的示例代碼
這篇文章主要介紹了Android8.0適配前臺(tái)定位服務(wù)service的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-07-07替換so文件來動(dòng)態(tài)替換Flutter代碼實(shí)現(xiàn)詳解
這篇文章主要為大家介紹了替換so文件來動(dòng)態(tài)替換Flutter代碼實(shí)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01Kotlin Service服務(wù)組件開發(fā)詳解
這幾天分析了一下的啟動(dòng)過程,于是乎,今天寫一下Service使用; 給我的感覺是它并不復(fù)雜,千萬不要被一坨一坨的代碼嚇住了,雖然彎彎繞繞不少,重載函數(shù)一個(gè)接著一個(gè),就向走迷宮一樣,但只要抓住主線閱讀,很快就能找到出口2022-12-12Android ListView的item背景色設(shè)置和item點(diǎn)擊無響應(yīng)的解決方法
在Android開發(fā)中,listview控件是非常常用的控件,在大多數(shù)情況下,大家都會(huì)改掉listview的item默認(rèn)的外觀。2013-11-11