java 接口回調實例詳解
java 接口回調實例詳解
首先官方對接口回調的定義是這樣的,所謂回調:就是A類中調用B類中的某個方法C,然后B類中反過來調用A類中的方法D,D這個方法就叫回調方法。這樣聽起來有點繞,我們可以這么理解接口回調:比如我們想知道隔壁老王啥時候回家?但是我們有自己的事情做不能一直監(jiān)視著老王,那么我們可以雇員小區(qū)的保安來完成這個任務,當老王回家口,保安就給我們打電話告訴我們,老王回來了!這樣就完成了一個事件的傳遞;
首先我們定義了一個接口:
public interface DynamicMessageListener { /** * 獲取網(wǎng)絡數(shù)據(jù), * @param bean bean 對象 */ void getDynamicData(List<DynamicBean.DataBean> bean, boolean isMore); }
定義一個類實現(xiàn)這個接口:
public class DynamicFragment extends Fragment implements DynamicMessageListener { //初始化監(jiān)聽者 private DynamicMessageListener listener; /** * 獲取網(wǎng)絡數(shù)據(jù) * * @param bean bean 對象 */ @Override public void getDynamicData(List<DynamicBean.DataBean> bean, boolean isMore) { if (bean != null && bean.size() > 0) { if (!isMore) { adapter = new DynamicAdapter(mContext, bean, this, classID); friendLv.setAdapter(adapter); adapter.setListener(this); LLog.e("activity------有數(shù)據(jù)"); } else { adapter.setData(bean); } } } }
在網(wǎng)絡請求層調用上面的方法:
public class DynamicModel extends BaseModel { private Context mContext; private NetUtils net; private DynamicMessageListener listener; public DynamicModel(Context mContext, DynamicMessageListener listener) { this.mContext = mContext; net = NetUtils.getInstance(); this.listener = listener; } /** * 加載網(wǎng)絡數(shù)據(jù), * @param url 網(wǎng)絡url * @param params 請求網(wǎng)絡攜帶的參數(shù) */ public void loadData(String url, RequestParams params) { net.sendGetRequest(url, params, new NetUtils.NetUtilsCallBack() { @Override public void getNetdata(String json) { if (json != null) { Gson gson = new Gson(); DynamicBean bean = gson.fromJson(json, DynamicBean.class); List<DynamicBean.DataBean> data = bean.getData(); listener.getDynamicData(data, false); if(data ==null||data.size() <=0 ){ listener.friendsNoData(false); LLog.e("沒有數(shù)據(jù)-----"); } } } @Override public void loadError(int a) { showError(a, mContext); } }); } }
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關文章
springboot 在idea中實現(xiàn)熱部署的方法
這篇文章主要介紹了springboot 在idea中實現(xiàn)熱部署的方法,實現(xiàn)了熱部署,在每一次作了修改之后,都會自動的重啟,非常節(jié)約時間,感興趣的小伙伴們可以參考一下2018-10-10SpringBoot整合jnotify實現(xiàn)針對指定目錄及其(動態(tài))子目錄的監(jiān)聽的方法
本文介紹了JNotify這一Java庫在SpringBoot中的應用,JNotify允許應用程序監(jiān)聽文件系統(tǒng)事件,包括文件夾/文件的創(chuàng)建、刪除、修改和重命名,由于JNotify底層調用的關鍵部分是C語言開發(fā)的,所以在使用前需要在系統(tǒng)中加入相應的動態(tài)庫2024-10-10基于Zookeeper實現(xiàn)服務注冊和服務發(fā)現(xiàn)功能
無論是采用SOA還是微服務架構,都需要使用服務注冊和服務發(fā)現(xiàn)組件,本文將基于 Zookeeper 實現(xiàn)服務注冊和服務發(fā)現(xiàn)功能,如果跟我一樣有同樣的困惑,希望可以通過本文了解其他組件如何使用 Zookeeper 作為注冊中心的工作原理2023-09-09