首页 > 开发 > Java > 正文

java 接口回调实例详解

2024-07-13 10:10:04
字体:
来源:转载
供稿:网友

javascript/34488.html">java/238920.html">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教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表