Android的回調機制

附加:懶得努力才活的累--因爲你寧願每天都活在自責和愧疚中也懶得去努力,所以就算每天無所事事也會覺得自己活得好累


回調在android開發中是經常使用到的,網上也有很多對回調進行講解,有空的話可以自己去搜搜,這裏附上個點擊打開鏈接等,言歸正傳,回調可以這麼說吧:就是在一個實現接口類(A類)的B類中,調用C類的方法,此時在B類中有個實現A類的方法,這個方法就是所謂的回調方法。具體看以下操作:


一、定義一個接口類

  寫上你所需要實現的方法,供他人實現:

public interface CallbackListener {
    /**
     * 這裏主要聲明聲明回調接口的方法
     */
    void method();
}

二、聲明一個調用上述接口的類

  這裏我們定義個Waiter類,調用回調接口中的方法

public class Waiter {
    private CallbackListener callbackListener;

    public void setCallbackListener(CallbackListener callbackListener){
        this.callbackListener = callbackListener;
    }

    public void use(){
        callbackListener.method();
    }
}

三、最後在Activity中實現接口類

在這裏我們通過調用Waiter類中的方法去調用接口方法,爲啥這麼做,因爲我們已經在當前類實現了那個接口,也就有了那個所謂的回調方法,我們就可以在這裏做些不正當的事了,哈哈 

public class CallbackActivity extends AppCompatActivity implements CallbackListener{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_callback);
        Waiter waiter = new Waiter();
        waiter.setCallbackListener(this);
        waiter.use();
    }

    @Override
    public void method() {
      //具體操作
    }
}

另外,我們也可以使用匿名類(不懂自己搜,我很lan)的方式實現,把上面改下就行了,不用再去實現接口類了,真爽

Waiter waiter = new Waiter();
waiter.setCallbackListener(new CallbackListener() {
    @Override
    public void method() {
        
    }
});
waiter.use();

看完上面如果還不懂的話,這裏還有另一篇大神寫的回調方法的解釋,點我,如果還不懂的話,沒救了,幫不了你了



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章