java 接口回调实例详解
时间:2019-03-30
本文章向大家介绍java 接口回调实例详解,主要包括java 接口回调实例详解使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
java 接口回调实例详解
首先官方对接口回调的定义是这样的,所谓回调:就是A类中调用B类中的某个方法C,然后B类中反过来调用A类中的方法D,D这个方法就叫回调方法。这样听起来有点绕,我们可以这么理解接口回调:比如我们想知道隔壁老王啥时候回家?但是我们有自己的事情做不能一直监视着老王,那么我们可以雇员小区的保安来完成这个任务,当老王回家口,保安就给我们打电话告诉我们,老王回来了!这样就完成了一个事件的传递;
首先我们定义了一个接口:
public interface DynamicMessageListener { /** * 获取网络数据, * @param bean bean 对象 */ void getDynamicData(List<DynamicBean.DataBean> bean, boolean isMore); }
定义一个类实现这个接口:
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); } } } }
在网络请求层调用上面的方法:
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); } }); } }
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
- php pathinfo()的用法
- BZOJ 1874: [BeiJing2009 WinterCamp]取石子游戏(SG函数)
- 微信公众平台开发
- BZOJ 1115: [POI2009]石子游戏Kam (阶梯nim)
- php性能监测模块XHProf
- BZOJ 1022: [SHOI2008]小约翰的游戏John (Anti-nim)
- 洛谷P2252 取石子游戏(威佐夫博弈)
- HDU 3032 Nim or not Nim?(Multi-Nim)
- POJ 2311 Cutting Game(二维SG+Multi-Nim)
- js去掉html标签和去掉字符串文本的所有的空格
- php操作memcache的使用测试总结
- linux awk命令详解
- php str_split 解决中文
- PHP汉字转拼音函数
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- codeforces 1426D(思维)
- codeforces 1324E(dp)
- OpenCV4.4 CUDA编译与加速全解析
- codeforces 1077D(二分)
- codeforces 1077F1(dp)
- Servlet基础入门学习1
- Lombok,你的开发效率神器!
- codeforces 1272E(反向建边+多源bfs)
- Tomcat在Java开发中的使用笔记
- codeforces 1423K(数学+差分数组预处理)
- 基于Quartz的定时任务及crond表达式入门学习
- Flutter 渲染引擎详解 - iOS GL 篇
- Flutter 渲染引擎详解 - iOS Metal 篇
- Solr 单节点的启动与配置
- Listener与Filter监听器基础使用