java 接口回调实例详解
程序员文章站
2023-11-30 12:04:34
java 接口回调实例详解
首先官方对接口回调的定义是这样的,所谓回调:就是a类中调用b类中的某个方法c,然后b类中反过来调用a类中的方法d,d这个方法就叫回调方法。这样...
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); } }); } }
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
上一篇: java开发中嵌套类的详解及实例