1. 程式人生 > >Android裡回撥(callback)的簡單用法

Android裡回撥(callback)的簡單用法

接觸Android這麼久,老是聽到回撥這個詞,覺得很高大上,一直很想弄明白這到底是個什麼鬼東東,同事只用了簡簡單單的一句話就讓我有了很直觀的理解:一個監聽器就是一個回撥方法的實現!不知道你看到這句話是不是瞬間也有了一個很直觀的理解呢!

於是我自己嘗試著寫了一個簡單的回撥demo,大致意思是一個listview,點選它的某個item,觸發一個textview文字內容的文字改變,顯示我點選的是哪一項,此處不用安卓提供的OnItemClickListener監聽器,而是在Adapter中自定義回撥介面來實現!注意:在android中是沒有OnItemLayoutClickListener這個監聽器的!所以我給這個回撥介面命名為OnItemLayoutClickListener,千萬不要去定義一個系統已有的介面名!

CSDN原始碼免積分下載地址為:回撥demo原始碼下載

簡單說一下過程:

第一步、第二步:

/***
 * 第一步:定義一個回撥介面類
*/
public interface OnItemLayoutClickListener {
    /***
     * 第二步:定義介面實現的方法
*/
void onItemLayoutClick(int position);
}
第三步:
/***
 * 第三步:申明這個類的物件
*/
private OnItemLayoutClickListener onItemLayoutClickListener;

第四步:

/***
 * 第四步:寫一個這個介面類的構造方法,傳遞實現了這個介面的例項
*/ public void setOnItemLayoutClickListener(OnItemLayoutClickListener onItemLayoutClickListener) { this.onItemLayoutClickListener = onItemLayoutClickListener; }

第五步:

if (null != onItemLayoutClickListener) {
    /***
     * 第五步:當列表項被點選時觸發回撥事件,傳遞所點選的列表項位置int position引數
     */
onItemLayoutClickListener
.onItemLayoutClick(position); }

第六步:

/***
 * 第六步:設定回撥之後需要處理的事件
*/
adapter.setOnItemLayoutClickListener(new CallBackListAdapter.OnItemLayoutClickListener() {
    @Override
public void onItemLayoutClick(int position) {
        String s = "點選了第" + position + "";
tv.setText(s);
}
});
回撥機制也有很複雜的用法,要學會不容易,還需要在以後的工作中多多練習、使用和學習!