当前位置: 移动技术网 > IT编程>开发语言>Java > java 接口回调实例详解

java 接口回调实例详解

2019年07月22日  | 移动技术网IT编程  | 我要评论

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

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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网