简单MVP框架,登录注册

/****model层,使用OK连接数据,没封装********/

public class MainModel {
    public void login(final String account,String password,final ILoginModelCallback iLoginModelCallback){
        OkHttpClient okHttpClient = new OkHttpClient.Builder().build();

        FormBody formBody = new FormBody.Builder()
                .add("mobile", account)
                .add("password", password)
                .build();

        final Request request = new Request.Builder()
                .url("https://www.zhaoapi.cn/user/login ")
                .post(formBody)
                .build();
        Call call = okHttpClient.newCall(request);
        call.enqueue(new Callback() {@Override
            public void onFailure(Call call, IOException e) {

            }

            @Override
            public void onResponse(Call call, Response response) throws IOException {
                String json = response.body().string();
                Log.d("model","数据"+json);
                Gson gson = new Gson();
                MainBean mainBean = gson.fromJson(json, MainBean.class);
                String code = mainBean.getCode();
                String msg = mainBean.getMsg();
                if ("0".equalsIgnoreCase(code)){
                if (iLoginModelCallback!=null){
                    iLoginModelCallback.getcuseccd(mainBean);
                }else{
                    if (iLoginModelCallback!=null){
                        iLoginModelCallback.geterror(msg);
                    }
                }
                }
            }
        });
    }
    public interface ILoginModelCallback{
        void getcuseccd(MainBean mainBean);
        void geterror(String error);
    }
}
/******Presenter层**********/

public class LoginPresenter {
    private final LoginModel mLoginModel;
    ILoginView mLoginView;
    public LoginPresenter(ILoginView loginView) {
        mLoginView = loginView;
        mLoginModel = new LoginModel();
    }
    public void login(String account, String password) {
        //逻辑处理
        if(account ==null){
            if (mLoginView != null) {
                mLoginView.onLoginFaild("手机号不能为空");
            }
            return;
        }
        mLoginModel.login(account, password, new LoginModel.ILoginModelCallback() {
            @Override
            public void onLoginSuccess(LoginBean loginBean) {
                if (mLoginView != null) {
                    mLoginView.onLoginSuccess(loginBean);
                }
            }
            @Override
            public void onLoginFaild(String error) {
                if (mLoginView != null) {
                    mLoginView.onLoginFaild(error);
                }
            }
        });
    }
}

/******view层**********/

public class LoginActivity extends AppCompatActivity implements View.OnClickListener, ILoginView {
    private LoginPresenter mLoginPresenter;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        findViewById(R.id.login).setOnClickListener(this);
        mLoginPresenter = new LoginPresenter(this);
    }
    //登陆
    @Override
    public void onClick(View v) {
        mLoginPresenter.login("15501186523","0123456");
    }
    @Override
    public void onLoginSuccess(final LoginBean loginBean) {
        runOnUiThread(new Runnable() {
            @Override
            public void run() {
 Toast.makeText(LoginActivity.this,"登陆成功 :" +loginBean.getData().getMobile(),Toast.LENGTH_LONG).show();
            }
        });
    }
    @Override
    public void onLoginFaild(final String error) {
        runOnUiThread(new Runnable() {
            @Override
            public void run() {
                Toast.makeText(LoginActivity.this,"登陆失败 : " +error,Toast.LENGTH_LONG).show();
            }
        });
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值