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; }*/ }