MVP练习网络请求
来源:互联网 发布:最新网络语言大全 编辑:程序博客网 时间:2024/06/17 07:11
UserModel
public class UserModel implements IModel { ArrayList<UserBean.NewslistBean> list;
//使用公开的那个接口 private OnFinishLisenter lisenter;//定义一个公开的接口 public interface OnFinishLisenter{
//定义一个传值的方法,用来接收网络请求回来的数据 void OnFinish(ArrayList<UserBean.NewslistBean> list); }//设置一个Set方法,穿进去那个接口类型的类,然后赋值 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();
//初始化Set方法,将当前类传进去 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);// }// }); }
//重写方法,里面的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; }*/}
阅读全文
0 0
- MVP练习网络请求
- MVP练习网络请求
- mvp okhttp3,网络请求
- mvp网络请求数据
- mvp网络请求
- mvp请求网络数据
- android MVP模式网络请求
- MVP模式请求网络数据
- MVP+okhttp请求网络接口
- MVP+Retrofit封装网络请求
- RxJava+Retrofit2+MVP实现网络请求
- 网络请求框架 Rxjava+ReTrofit+okHttp+MVP
- okHttp网络请求2——MVP
- MVP-简单的OkHttp网络请求数据
- MVP+recyclerview网络请求列表数据
- MVP+Retrofit+Observable+RecyclerView请求网络
- android+MVP+Retrofit+RxJava做网络请求
- MVP+Rxjava+Retrofit+Fresco网络请求数据
- SSL2832 2017年11月3日提高组T1 生日宴会(二分)
- 抽象类和接口的区别
- iOS开发 封装一个可以复用的弹窗父类(TSActionAlertView)
- 一元二次方程1
- [转]multiparty 实现nodejs form-data上传
- MVP练习网络请求
- django+mysql+插入数据库网页展示内容
- SSL2833 2017年11月3日提高组T1 Alice的疑问(数位dp)
- 打造前端 Deepin Linux 工作环境——配置 XAMPP 集成环境2 虚拟主机、数据库
- hadoop FileInputFormat.addInputPaths兼容FileInputFormat.setInputPath
- 数据结构与算法C++描述(14)---二叉搜索树
- Android Studio Error:Failed to resolve: com.android.support:appcompat-v7:25.1.0
- Jzoj5446 高考是不可能高考的
- LeetCode 之 Linked List Cycle II