Android 回撥方法的實現
原理
介面可以引用實現了它的類
假設有一個介面I A類實現介面 I可以去引用A時裡面實現方法
B 裡面有一個I的引用 呼叫 I的引用即是呼叫A裡面的實現方法
那麼,前提就是B裡面要傳入A類的
程式碼實現介面ICallback
public interface ICallback{
void callback();
}
實現類A
public class A implements I {
@Override
public void callback() {
System.out.println("我實現了介面的方法");
}
public void callB() {
B a = new B(); // B的例項
a.setCallback(this); // 傳入A的例項到B中
System.out.println("我是A類的callB方法,我要呼叫B類的callA方法");
a.callA(); // 在callA()中呼叫A的方法
}
}
B類
public class B {
ICallback callback;
public void setCallback(ICallback callback) {
this.callback = callback;
}
public void callA() {
System.out.println("我是B類的callA方法,我要回撥A類的callback方法");
callback.callback();
}
}
實現 setCallback 可以轉化為 setOnClickListener
callA() 可以看作為 onClick()
也就是在呼叫onClick()方法的時候,其實是在呼叫實現了OnClickListener 類的onClick()方法
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4798/viewspace-2799389/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 回撥方法
- 用Kotlin實現極簡回撥Kotlin
- Android之無法回撥onActivityResultAndroid
- 【JavaSE】java實現閉包與回撥Java
- C語言回撥日誌庫的實現C語言
- C#使用委託實現函式回撥,方法呼叫攔截C#函式
- Android BLE & BluetoothGattCallback.onServicesDiscovered不回撥或部分回撥解決Android
- 用匿名內部類實現 Java 同步回撥Java
- Flutter如何優雅的使用typedef回撥方法Flutter
- Activity生命週期回撥是如何被回撥的?
- Swift 中如何利用閉包實現非同步回撥?Swift非同步
- 不用ATL框架純手工實現COM程式外回撥框架
- [JS]回撥函式和回撥地獄JS函式
- Android如何回撥編碼後的音視訊資料Android
- 基於Guava API實現非同步通知和事件回撥GuavaAPI非同步事件
- JNI-Thread中start方法的呼叫與run方法的回撥分析thread
- 關於js回撥方法及遞迴時的使用JS遞迴
- 退避演算法實現之客戶端優雅回撥演算法客戶端
- 回撥函式的作用函式
- 一個Demo帶你理解Android介面回撥機制Android
- [實戰] Android 撥打電話Android
- 非同步/回撥非同步
- js 回撥 callbackJS
- 回撥函式函式
- 回撥地獄
- C++回撥C++
- java回撥函式-非同步回撥-簡明講解Java函式非同步
- [iOS] [OC] 關於block回撥、高階函式“回撥再呼叫”及專案實踐iOSBloC函式
- C++屌屌的觀察者模式-同步回撥和非同步回撥C++模式非同步
- Bean 的生命週期回撥Bean
- 回撥和spring的LambdaSafe類Spring
- 回撥函式的理解(一)函式
- 事實上,回撥函式還不錯!!函式
- uni-app 中實現 onLaunch 非同步回撥後執行 onLoad 最佳實踐APP非同步
- ajax--實現非同步請求,接受響應及執行回撥非同步
- JavaScript 回撥函式JavaScript函式
- 微博回撥介面
- JavaScript回撥函式JavaScript函式