1. 程式人生 > >安卓點擊事件回調機制的思考

安卓點擊事件回調機制的思考

當我 屬性 .com 分享 是什麽 很好 理解 匿名內部類 參數

回調(毀掉?)機制

http://www.cnblogs.com/heshuchao/p/5376298.html這篇文章講的很好。

這篇 屬於 JAVA的範疇,只不過我們是借用安卓按鈕的onclick事件來解釋這種機制

首先,我們要 創建一個接口,在這個接口中 聲明我們想調用的方法。(接口中定義抽象方法即可,具體由具體類來實現接口中的方法)

暫停一下,舉個栗子,我們都知道 給按鈕添加監聽器時重寫的onclick方法,那麽在這個onclick中編寫的代碼不同,那麽當我們點擊按鈕的時候做出的反應就不同(特麽的,聽起來一副很傻比的樣子??),這個就是 回調機制的 初衷了,現在我們開始引入回調機制的概念:

  網上很多 什麽程序A調用程序B中的方法C,然後方法C又反過來調用程序A中的方法D;是不是一頭霧水,其實大概的機制也差不多就是這樣,好不容易理清楚了,發現在實踐中 貌似並不完全一樣;沒錯 筆者初期也是一臉懵逼 ??。

  那麽什麽是回調呢:在一個類中需要使用一些方法,不過這些方法具體是什麽樣的方法,現在還不得而知,這裏聰明的同學肯定已經聯想到了接口,接口就是定義了一系列的抽象方法,這些抽象方法由那些使用了接口的具體類來提供實現,我的猜想是 button.setOnClickListener(new View.onClickListener) 括號中的 onClickListener是View類中的一個接口,這個接口中有一個抽象方法onClick技術分享

所以我們 很多時候是這樣技術分享

這其實是使用了 匿名內部類來實現了該接口中的onClick方法 並將實現了該方法匿名類的實例的引用作為參數傳遞給setOnClickListener。

那麽,View類中單擊監聽屬性 1 public OnClickListener mOnClickListener; 便也持有了該引用,當我們點擊按鈕時 程序調用View中的mOnClickListener.onClick ,這時View程序反過來調用 程序中我們編寫的onClick方法,也就完成了一個所謂的回調過程,在這個過程中onClick這個方法便是回調方法。筆者的表達能力有限,暫時只能講成這個樣子,後期有更深刻的體會後 會回過頭來更新這篇文章,初學者可以看開頭筆者推薦那篇博客,那個寫的循序漸進很好理解。

本文可能存在片面或者問題,有更好的建議或者意見筆者歡迎大家在評論區 留言。

安卓點擊事件回調機制的思考