Android裡回撥(callback)的簡單用法
阿新 • • 發佈:2019-01-26
接觸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); } });回撥機制也有很複雜的用法,要學會不容易,還需要在以後的工作中多多練習、使用和學習!