java 接口回調(diào)實例詳解
java 接口回調(diào)實例詳解
首先官方對接口回調(diào)的定義是這樣的,所謂回調(diào):就是A類中調(diào)用B類中的某個方法C,然后B類中反過來調(diào)用A類中的方法D,D這個方法就叫回調(diào)方法。這樣聽起來有點繞,我們可以這么理解接口回調(diào):比如我們想知道隔壁老王啥時候回家?但是我們有自己的事情做不能一直監(jiān)視著老王,那么我們可以雇員小區(qū)的保安來完成這個任務(wù),當(dāng)老王回家口,保安就給我們打電話告訴我們,老王回來了!這樣就完成了一個事件的傳遞;
首先我們定義了一個接口:
public interface DynamicMessageListener {
/**
* 獲取網(wǎng)絡(luò)數(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)絡(luò)數(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)絡(luò)請求層調(diào)用上面的方法:
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)絡(luò)數(shù)據(jù),
* @param url 網(wǎng)絡(luò)url
* @param params 請求網(wǎng)絡(luò)攜帶的參數(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);
}
});
}
}
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章
SpringBoot整合Sharding-JDBC實現(xiàn)MySQL8讀寫分離
本文是一個基于SpringBoot整合Sharding-JDBC實現(xiàn)讀寫分離的極簡教程,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的可以了解一下2021-07-07
解決ResourceBundle.getBundle文件路徑問題
這篇文章主要介紹了解決ResourceBundle.getBundle文件路徑問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-01-01
SpringBoot Pom文件依賴及Starter啟動器詳細(xì)介紹
這篇文章主要介紹了SpringBoot Pom文件的依賴與starter啟動器的作用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-09-09
springboot中報錯Invalid character found in
這篇文章主要介紹了springboot中報錯Invalid character found in the request的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-09-09
SpringBoot最簡單的定時任務(wù)@Scheduler的使用及解讀
這篇文章主要介紹了SpringBoot最簡單的定時任務(wù)@Scheduler的使用及解讀,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2025-03-03
C語言中下標(biāo)與指針的轉(zhuǎn)換以及指向指針的指針的例子
這篇文章主要介紹了C語言中下標(biāo)與指針的轉(zhuǎn)換以及指向指針的指針的示例,是C語言入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下2015-11-11
java 自己實現(xiàn)DataSource實現(xiàn)實例
這篇文章主要介紹了java 自己實現(xiàn)DataSource實現(xiàn)代碼的相關(guān)資料,需要的朋友可以參考下2017-05-05

