MVP层

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);
            }
        });
    }
}
 

猜你喜欢

转载自blog.csdn.net/weixin_42535797/article/details/81609794
MVP