Android 回撥方法的實現

abcjob發表於2021-09-09
原理

介面可以引用實現了它的類

假設有一個介面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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章