mvp网络请求数据

来源:互联网 发布:卓跃教育 知乎 编辑:程序博客网 时间:2024/06/05 03:49

Contract

package yuzhendong.baway.com.yuekao1025.contract;import java.util.List;import yuzhendong.baway.com.yuekao1025.bean.Bean;import yuzhendong.baway.com.yuekao1025.model.Model;public class Contract {    public interface IModel{        void getData(Model.ICallBack iCallBack);    }    public interface IView{        void setData( List<Bean.StoriesBean> list);    }    public interface IPresenter{        void showData();    }}Model 
package yuzhendong.baway.com.yuekao1025.model;import java.io.IOException;import java.util.List;import okhttp3.Call;import yuzhendong.baway.com.yuekao1025.bean.Bean;import yuzhendong.baway.com.yuekao1025.contract.Contract;import yuzhendong.baway.com.yuekao1025.utils.GsonObjectCallback;import yuzhendong.baway.com.yuekao1025.utils.OkHttp3Utils;/** * Created by Administrator on 2017/10/25. */public class Model implements Contract.IModel {    private String url = "http://news-at.zhihu.com/api/4/news/latest";    ICallBack callBack;    @Override    public void getData(ICallBack iCallBack) {        callBack =iCallBack;        OkHttp3Utils.doGet(url, new GsonObjectCallback<Bean>() {            @Override            public void onUi(Bean bean) {                List<Bean.StoriesBean> list = bean.getStories();                callBack.setList(list);            }            @Override            public void onFailed(Call call, IOException e) {            }        });    }    public interface ICallBack{        void setList( List<Bean.StoriesBean> list);    }}


Presenter

package yuzhendong.baway.com.yuekao1025.presenter;import java.util.List;import yuzhendong.baway.com.yuekao1025.bean.Bean;import yuzhendong.baway.com.yuekao1025.contract.Contract;import yuzhendong.baway.com.yuekao1025.model.Model;/** * Created by Administrator on 2017/10/25. */public class Presenter implements Contract.IPresenter {    Contract.IView iView;    Model model;    public Presenter(Contract.IView iView) {        this.iView = iView;        model = new Model();    }    @Override    public void showData() {        model.getData(new Model.ICallBack() {            @Override            public void setList(List<Bean.StoriesBean> list) {                iView.setData(list);            }        });    }}


implements Contract.IView
presenter.showData();
@Overridepublic void setData(List<Bean.StoriesBean> list) {    mlist.addAll(list);    m1 = new Myadapter(getActivity(),mlist);    recyclerView.setAdapter(m1);    StopXrecyxlerview();}




原创粉丝点击