M层
package com.example.ggq.gaoguoqing20180811.model;
import android.os.Handler;
import android.os.Message;
import com.example.ggq.gaoguoqing20180811.bean.UserBean;
import com.example.ggq.gaoguoqing20180811.common.Api;
import com.example.ggq.gaoguoqing20180811.utils.OkHttpUtil;
import com.google.gson.Gson;
import java.io.IOException;
import java.util.HashMap;
import okhttp3.Response;
public class RegModel {
private RegCallback callback;
public void setCallback(RegCallback callback) {
this.callback = callback;
}
private Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
}
};
public void register(HashMap<String,String> params, final RegCallback regCallback){
OkHttpUtil.getInstance().postData(Api.REG_URL, params, new OkHttpUtil.RequestCallback() {
@Override
public void onSuccess(Response response) {
if(response.code() == 200){
try {
String result = response.body().string();
parseJsonResult(result,regCallback);
} catch (IOException e) {
e.printStackTrace();
}
}
}
@Override
public void onError(IOException e) {
if(regCallback != null){
regCallback.failure("数据请求失败!");
}
}
});
}
private void parseJsonResult(String result, final RegCallback regCallback) {
if(result != null){
final UserBean userBean = new Gson().fromJson(result, UserBean.class);
handler.post(new Runnable() {
@Override
public void run() {
if(regCallback != null){
regCallback.success(userBean);
}
}
});
}
}
public interface RegCallback{
void success(UserBean userBean);
void failure(String errorMsg);
}
}
V层
package com.example.ggq.gaoguoqing20180811.view;
import com.example.ggq.gaoguoqing20180811.bean.UserBean;
public interface RegView {
void mobileVerify();//手机号合法
void pwdVerify();//密码合法
void mobileEmpty();//手机号非空验证
void pwdEmpty();//密码非空验证
void onSuccess(UserBean userBean);//数据请求成功
void onError(String errorMsg);//数据请求失败
}
P层
package com.example.ggq.gaoguoqing20180811.presenter;
import android.text.TextUtils;
import com.example.ggq.gaoguoqing20180811.bean.UserBean;
import com.example.ggq.gaoguoqing20180811.model.RegModel;
import com.example.ggq.gaoguoqing20180811.utils.VerifyUser;
import com.example.ggq.gaoguoqing20180811.view.RegView;
import java.util.HashMap;
public class RegPresenter {
private RegModel regModel;
private RegView regView;
public RegPresenter(RegView regView) {
onAttach(regView);
this.regModel = new RegModel();
}
public void onAttach(RegView regView){
this.regView = regView;
}
public void onDetach(){
this.regView = null;
}
public void register(String mobile,String pwd){
if(TextUtils.isEmpty(mobile)){
regView.mobileEmpty();
return;
}
if(!VerifyUser.isMobileNO(mobile)){
regView.mobileVerify();
return;
}
if(TextUtils.isEmpty(pwd)){
regView.pwdEmpty();
return;
}
if(!VerifyUser.isPasswordNo(pwd)){
regView.pwdVerify();
return;
}
HashMap<String, String> params = new HashMap<>();
params.put("mobile",mobile);
params.put("password",pwd);
regModel.register(params,new RegModel.RegCallback() {
@Override
public void success(UserBean userBean) {
regView.onSuccess(userBean);
}
@Override
public void failure(String errorMsg) {
regView.onError(errorMsg);
}
});
}
}