Mvp使用
来源:互联网 发布:linux mmap使用 编辑:程序博客网 时间:2024/05/29 14:57
1.model接口
public interface Imodel { void login(String aa);}
2.继承接口
public class Mmodel implements Imodel { // 定义接口变量 private OnFinishLisenter lisenter; //定义接口 public interface OnFinishLisenter{ void onFinish(List<Mysup.NewslistBean> userBean); } public void setOnFinishLisenter(OnFinishLisenter lisenter){ this.lisenter = lisenter; } private List<Mysup.NewslistBean> mys; @Override public void login(String aa) { Retrofit retrofit = new Retrofit.Builder().baseUrl(Api.Home).addConverterFactory(GsonConverterFactory.create()).addCallAdapterFactory(RxJavaCallAdapterFactory.create()).build(); Apiser apiser = retrofit.create(Apiser.class); Observable<Mysup> gethom = apiser.gethom(); gethom.subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Observer<Mysup>() { @Override public void onCompleted() { } @Override public void onError(Throwable e) { } @Override public void onNext(Mysup mysup) { lisenter.onFinish(mysup.getNewslist()); } }); }}
3.view定义接口
public interface Iview { void onLoginSuccess(List<Mysup.NewslistBean> cc); void onLoginFailed(String error);}
4.继承接口
public class Mview implements Iview { @Override public void onLoginSuccess(List<Mysup.NewslistBean> cc) { } @Override public void onLoginFailed(String error) { }}
public class Mpresenter implements Mmodel.OnFinishLisenter { private final Iview userView; private final Mmodel userMode; public Mpresenter(Iview userView) { this.userView = userView; this.userMode = new Mmodel(); } public void login(final String aa){ userMode.setOnFinishLisenter(this); userMode.login(aa); } @Override public void onFinish(List<Mysup.NewslistBean> userBean) { userView.onLoginSuccess(userBean); }}
6.主方法继承使用
public class Zhifr extends Fragment implements Iview{ @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.zhifr, null); mRecyclerView=view.findViewById(R.id.id_recyclerview); userPresenter=new Mpresenter(this); userPresenter.login(""); return view; } @Override public void onLoginSuccess(List<Mysup.NewslistBean> cc) { } @Override public void onLoginFailed(String error) { }}
7.Api
public class Api { public static final String Home="https://api.tianapi.com/wxnew/";}
8.Apiser
public interface Apiser { @GET("?key=8d6e3228d25298f13af4fc40ce6c9679&num=20&page=1") Observable<Mysup> gethom();}
9.依赖
compile 'com.hjm:BottomTabBar:1.1.1' compile 'com.android.support:design:23.4.0' compile 'com.squareup.retrofit2:retrofit:2.0.1' compile 'com.squareup.retrofit2:converter-gson:2.0.1' compile 'com.squareup.retrofit2:adapter-rxjava:2.0.1' compile 'io.reactivex:rxandroid:1.1.0' compile 'com.squareup.okhttp3:logging-interceptor:3.4.1' compile 'com.android.support:mediarouter-v7:25.0.0' compile 'com.android.support:appcompat-v7:25.0.0' compile 'com.android.support:recyclerview-v7:25.0.0' compile 'com.facebook.fresco:fresco:0.12.0'
阅读全文
0 0
- MVP使用
- Mvp使用
- EasyAndroid-MVP安卓轻松使用MVP
- 正确使用MVP模式
- MVP的使用
- 使用MVP 书写 Android
- Android MVP 使用教程
- Mvp架构的使用
- mvp使用详解
- 为什么要使用MVP
- 为什么使用MVP模式
- Android中使用MVP
- MVP模式使用心得
- 高效的使用MVP
- mvp学习使用
- android使用MVP模式
- Android mvp 使用分析
- MVP的简单使用
- Fibonacci数列
- Android自定义View画圆+进度条+自定义View梯形
- Qt5与https
- 第十五天总结
- Retrofit结合rxjava使用
- Mvp使用
- iOS推送javaPNS源码解析四,证书管理类
- leetcode---longest-substring-without-repeating-characters---字符串
- linux——线程
- HTML5动画和鼠标移动
- TCP/IP 关于一些在应用层的协议
- 先码后看 Tomcat是怎么启动的?——Bootstrap引导 侵立删
- ThreeQieHuan
- -lrt问题,即:shm_open的头文件存在,编译却不通过,提示undefined