MVP练习网络请求

来源:互联网 发布:云计算行业报告 编辑:程序博客网 时间:2024/06/05 06:24

UserModel


public class UserModel implements IModel {    ArrayList<UserBean.NewslistBean> list;    private OnFinishLisenter lisenter;    public interface OnFinishLisenter{        void OnFinish(ArrayList<UserBean.NewslistBean> list);    }    public void setOnUserModel(OnFinishLisenter lisenter) {        this.lisenter = lisenter;    }    @Override    public void getJson(String url) {        list = new ArrayList<>();        Retrofit retrofit = new Retrofit.Builder().baseUrl(url).addConverterFactory(GsonConverterFactory.create()).addCallAdapterFactory(RxJavaCallAdapterFactory.create()).build();        ApiService apiService = retrofit.create(ApiService.class);        Observable<UserBean> user = apiService.getUser();        user.subscribeOn(Schedulers.io())                .observeOn(AndroidSchedulers.mainThread())                .subscribe(new Observer<UserBean>() {                    @Override                    public void onCompleted() {                    }                    @Override                    public void onError(Throwable e) {                    }                    @Override                    public void onNext(UserBean userBean) {                        list = (ArrayList<UserBean.NewslistBean>) userBean.getNewslist();                        //Log.d("Main","+++++++++++++++++++++++++++++");                        lisenter.OnFinish(list);                    }                });    }}


UserPresenter


public class UserPresenter implements UserModel.OnFinishLisenter{    private final IView userView;    private final UserModel userModel;    public UserPresenter(IView userView) {        this.userView = userView;        this.userModel = new UserModel();        userModel.setOnUserModel(this);    }    public void setJson(String url){        userModel.getJson(url);//        userModel.setOnUserModel(new UserModel.OnFinishLisenter() {//            @Override//            public void OnFinish(ArrayList<UserBean.NewslistBean> list) {//                userView.getUser(list);//            }//        });    }    @Override    public void OnFinish(ArrayList<UserBean.NewslistBean> list) {        userView.getUser(list);    } /*   @Override    public void OnFinish(ArrayList<UserBean.NewslistBean> list) {//        ArrayList<UserBean.NewslistBean> mlist;//        mlist = new ArrayList<>();//        mlist = list;    }*/}
原创粉丝点击