java 接口回调实例详解

作者:lqh 时间:2023-11-19 15:44:24 

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);
     }
   });
 }
}

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

来源:http://blog.csdn.net/aj2722465/article/details/54882712

标签:java,接口回调
0
投稿

猜你喜欢

  • 基于jstl 标签的使用介绍

    2021-10-01 13:48:36
  • Android下载进度监听和通知的处理详解

    2022-03-27 08:39:02
  • java基础学习笔记之泛型

    2022-05-31 01:49:44
  • Spring MVC如何使用@RequestParam注解获取参数

    2021-05-28 14:20:19
  • C#自定义缓存封装类实例

    2023-10-15 09:24:27
  • Kotlin select使用方法介绍

    2022-05-28 19:34:27
  • 一篇文章带你搞定JAVA注解

    2023-03-15 05:22:23
  • 一篇文章带你了解C语言二分查找

    2023-10-16 19:51:57
  • C#中缓存System.Web.Caching用法总结

    2021-09-05 04:41:11
  • Android Studio 常见问题及解决方法(推荐)

    2023-08-18 09:07:35
  • 使用@RequestBody配合@Valid校验入参参数

    2023-05-04 22:36:09
  • c#创建windows服务(Windows Services)详细步骤

    2023-06-11 19:05:22
  • Java的接口和抽象类深入理解

    2023-01-26 02:19:22
  • 解决mybatis plus 驼峰式命名规则问题

    2022-09-29 11:24:34
  • java中的final关键字详解及实例

    2022-03-02 11:26:59
  • Java装饰器设计模式初探

    2021-08-17 17:23:46
  • Java 继承与多态的深入理解

    2023-10-05 04:25:41
  • Java多线程之synchronized同步代码块详解

    2022-02-10 21:29:51
  • Spring Boot调用 Shell 脚本实现看门狗功能

    2023-09-14 18:52:07
  • MyBatis动态Sql之if标签的用法详解

    2023-04-20 14:02:26
  • asp之家 软件编程 m.aspxhome.com