1. 程式人生 > 程式設計 >利用 kotlin 的方式自定義回撥事件(kotlin函式引數)

利用 kotlin 的方式自定義回撥事件(kotlin函式引數)

java 中自定義回撥事件的寫法

建立 interface類,建立 interface 物件,實現 set 方法:

利用 kotlin 的方式自定義回撥事件(kotlin函式引數)

使用:

利用 kotlin 的方式自定義回撥事件(kotlin函式引數)

kotlin 中自定義點選事件寫法

依照 java 的思想(不推薦)

建立 interface類,建立 interface 可變物件(var)

利用 kotlin 的方式自定義回撥事件(kotlin函式引數)

使用:

利用 kotlin 的方式自定義回撥事件(kotlin函式引數)

利用 kotlin 函式作為引數(強烈推薦)

來看一下系統的點選事件在 kotlin 中是什麼樣的:

利用 kotlin 的方式自定義回撥事件(kotlin函式引數)

是不是簡直簡潔到不像話?再看看你自己定義的點選事件回撥,感覺跟還在用 java 開發一樣…

下面就來看個新的寫法:

建立一個函式物件,在需要回調的地方調起這個函式:

利用 kotlin 的方式自定義回撥事件(kotlin函式引數)

用法:

利用 kotlin 的方式自定義回撥事件(kotlin函式引數)

是不是比用物件表示式看起來還要簡潔?

2018.12.12 更新:

上邊截圖裡的 kotlin 點選事件回撥,還有更簡潔的定義方法:

利用 kotlin 的方式自定義回撥事件(kotlin函式引數)

之前的寫法是宣告不可為 null 的函式變數,然後判斷是否初始化再去 invoke 函式。

現在宣告可為 null 的函式變數,在 invoke 函式的時候用 ?. 表示函式變數可空,如果沒有給這個點選事件函式賦值的話,這行程式碼也不會引起 crash。現在連判斷條件都不需要了,更精簡了。

這裡再說點個人經驗,如果你的回撥方法不止一個的話,推薦還是宣告 interface 來做,這樣的話都在一個 interface 裡邊好管理一些

以上這篇利用 kotlin 的方式自定義回撥事件(kotlin函式引數)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。