首先官方对接口回调的定义是这样的,所谓回调:就是A类中调用B类中的某个方法C,然后B类中反过来调用A类中的方法D,D这个方法就叫回调方法。这样听起来有点绕,我们可以这么理解接口回调:比如我们想知道隔壁老王啥时候回家?但是我们有自己的事情做不能一直监视着老王,那么我们可以雇员小区的保安来完成这个任务,当老王回家口,保安就给我们打电话告诉我们,老王回来了!这样就完成了一个事件的传递;
首先我们定义了一个接口:
1
2
3
4
5
6
7
|
public interface DynamicMessageListener { /** * 获取网络数据, * @param bean bean 对象 */ void getDynamicData(List<DynamicBean.DataBean> bean, boolean isMore); } |
定义一个类实现这个接口:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
public class DynamicFragment extends Fragment implements DynamicMessageListener { //初始化监听者 private DynamicMessageListener listener; /** * 获取网络数据 * * @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------有数据" ); } else { adapter.setData(bean); } } } } |
在网络请求层调用上面的方法:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
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; } /** * 加载网络数据, * @param url 网络url * @param params 请求网络携带的参数 */ 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( "没有数据-----" ); } } } @Override public void loadError( int a) { showError(a, mContext); } }); } } |
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
原文链接:http://blog.csdn.net/aj2722465/article/details/54882712