这东西看着很高大上,当然研究明白更好,但是我们最主要的目的是用啊,对吧会用才能好好的去研究啊,今天就说一下怎么用,不说原理,只说我的这个东西怎么用,具体的自己去研究吧。
首先第一步先下载 下边链接
我的mvp地址 基本上下下来就可以用,里面有一个demo,接口用的玩Android的登陆接口 (玩Android api地址 )
然后下一步就说说怎么用:
1、整体结构说一下首先里面有三个base的java文件,这个你应该知道,之后你新建的activity 或者fragment 或者view 都要过来继承一下这个。
2、Consts这个是地址统一管理的一个东西,名字随便改,没啥说的。
3、UserAPI 这个是retrofit要用的一个东西里面,用过retrofit你一定知道这个东西,但是里面不太一样
@FormUrlEncoded//这个是使用rx的
@POST(Consts.URL.LOGIN)
Observable<HttpResults<LoginResultBean>> login(@Field("username") String var1, @Field("password") String var2);
@FormUrlEncoded//这个是不用rx的
@POST(Consts.URL.LOGIN)
Call<ResponseBody> logins(@Field("username") String var1, @Field("password") String var2);
不知道有没有看出来差别那 使用rx的是Observable 开头不用的是call开头的,具体原因去看rx吧
4、UserModel这个是来调起网络请求并且做一些数据处理,将数据返回到对应的Presenter,说一下几个东西.map(new HttpResultFunc())这个东西你可以理解为请求结果的统一处理 ,如果说后台不怎么配合的话这个东西可以不加,也可以修改,就是HttpResultFunc这个类 里面关键代码
public T call(HttpResults<T> var1) {
if (var1.errorCode < 0) {//判断请求状态
throw new ApiException(var1.errorMsg);
} else {
return var1.data;//代表请求成功
}
}
里面还有一个类 HttpResults 自己去看吧,主要是用来json解析的。
5、下面是一个demo 代码自己看吧,你一定会看懂的很简单的,baseActivity里面封装了一下请求的dialog,可以直接用,我里面有demo,activty上面一定加上@RequiresPresenter(对应的Presenter.class)
不然getPresenter 的时候会报错,view里面的方法是在activity里面实现的。用来从对应的Presenter里面获取加载的数据
6、ErrorHanding 这个是做网络状态判断的
7、RetrofitClient这个是主要的方法,来做网络请求的封装的里面就加了一个log拦截器 ,你也可以添加其他的拦截器,比如添加cookie持久化(cookieJar也行用来管理cookie的)
大概就这么多玩意,不明白可以私信我,也可以百度。直接下载就可以用这个框架了。不足之处还请多多指正