mvp框架
package weektest.baway.di.contert;**
//契约类
**
public interface IContert {
//v层
public interface IView{
//登录数据显示
public void showData(String s);
//注册的数据显示
public void registerData(String s);
//xbanner
public void showxbannerData(String s);
//home数据
public void showProductsData(String s);
//圈子的显示数据
public void showcircleData(String s);
}
//p层
public interface IPersenter{
public void attachView(IView iView);
public void destach(IView iView);
//登陆的
public void request(String dlname, String dlpass);
//注册的
public void register_request(String dlname, String dlpass);
//Xbanner
public void requestxbanner();
//数据显示
public void showProducts();
//圈子的回
public void requestcircle();
}
//m层
public interface IModel{
//登录
public void callBack(String dlname,String dlpass,oncallBack callback);
//注册
public void register_callBack(String dlname, String dlpass,oncallBack oncallBack);
//xbanner
public void xbannercallback(oncallBack oncallBack);
//数据显示
public void productscallBack(oncallBack oncallBack);
//圈子
public void circlersponse(oncallBack oncallBack);
public interface oncallBack{
public void oncallBack(String s);
}
}
}
package weektest.baway.di.model; ///model层
import android.util.Log;
import com.lzy.okgo.OkGo;
import com.lzy.okgo.callback.StringCallback;
import java.io.IOException;
import java.net.URL;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.FormBody;
import okhttp3.Response;
import weektest.baway.data.Conster;
import weektest.baway.data.util.OKutil;
import weektest.baway.di.contert.IContert;
import static weektest.baway.data.Conster.DLURL;
import static weektest.baway.data.Conster.ZCURL;
public class IModel implements IContert.IModel {
@Override
public void callBack(String dlname,String dlpass,final oncallBack oncallBack) {
**
String UrlString = Conster.DLURL+"?phone="+dlname+"&pwd="+dlpass; FormBody formBody = new FormBody.Builder().build(); OKutil.getInstance().post(formBody, UrlString, new Callback()
** {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
**String s = response.body().string();
oncallBack.oncallBack(s);
Log.i(“oopo”, "onResponse: "+s);**
}
});
}
//注册
@Override
public void register_callBack(String dlname, String dlpass,final oncallBack oncallBack) {
String UrlString=Conster.ZCURL+"?phone="+dlname+"&pwd="+dlpass;
FormBody formBody = new FormBody.Builder().build();
OKutil.getInstance().post(formBody, UrlString, new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
String s = response.body().string();
oncallBack.oncallBack(s);
}
});
}
//xbanner
@Override
public void xbannercallback(final oncallBack oncallBack) {
OKutil.getInstance().get(Conster.XBANNERURL, new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
**String s = response.body().string();
oncallBack.oncallBack(s);**
}
});
}
//首页
@Override
public void productscallBack(final oncallBack oncallBack) {
OkGo.<String>get(Conster.PRODUCTSURL).execute(new StringCallback() {
@Override
public void onSuccess(com.lzy.okgo.model.Response<String> response) {
String s = response.body().toString();
oncallBack.oncallBack(s);
}
});
}
}
**
P层
**
//presenter
public class IPersenter implements IContert.IPersenter<IContert.IView> {
IContert.IView iView;
private IModel iModel;
private SoftReference<IModel> reference;
@Override
public void attachView(IContert.IView iView) {
this.iView = iView;
iModel = new IModel();
reference = new SoftReference<>(iModel);
}
@Override
public void destach(IContert.IView iView) {
reference.clear();
}
//登录
@Override
public void request(String dlname, String dlpass) {
iModel.callBack(dlname,dlpass,new IContert.IModel.oncallBack() {
@Override
public void oncallBack(String s) {
iView.showData(s);
}
});
}
//注册
@Override
public void register_request(String dlname, String dlpass) {
iModel.register_callBack(dlname,dlpass,new IContert.IModel.oncallBack() {
@Override
public void oncallBack(String s) {
iView.registerData(s);
}
});
}
//xbanner
@Override
public void requestxbanner() {
iModel.xbannercallback(new IContert.IModel.oncallBack() {
@Override
public void oncallBack(String s) {
iView.showxbannerData(s);
}
});
}
//首页数据显示
@Override
public void showProducts() {
iModel.productscallBack(new IContert.IModel.oncallBack() {
@Override
public void oncallBack(String s) {
iView.showProductsData(s);
}
});
}
}