Text2_login

一,model


   //1.写一个登录的方法

    public void login(final String phone,String password,final LoginViewCallback loginViewCallback){
       //3.创建OK
        OkHttpClient okHttpClient= new OkHttpClient.Builder().build();
        //4.通过表单的形式,构建一个RequestBody,通过key 和value的方式上传参数
        RequestBody requestBody=new FormBody.Builder()
                .add("source","android")
                .add("mobile",phone)
                .add("password",password)
                .build();
        //5.通过我们构造的requeatbody对象,去构造一个request
        Request request=new Request.Builder()
                .url("https://www.zhaoapi.cn/user/login")
                .post(requestBody)
                .build();
        //6.使用OKHttpclienct 对象执行new Call,传入一个request,去构造一个call 请求
        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();
                Gson gson=new Gson();
                LoginBean loginBean = gson.fromJson(json, LoginBean.class);
                String code = loginBean.getCode();
                String msg = loginBean.getMsg();




                if("0".equalsIgnoreCase(code)){
                    //请求成功
                    if(loginViewCallback!=null){
                        loginViewCallback.getSuccess(loginBean);
                    }




                }else{
                    //请求失败
                    if(loginViewCallback!=null){
                        loginViewCallback.getError(msg);
                    }
                }
            }
        });




    }




    //2.声明一个接口
    public interface LoginViewCallback{
        void getSuccess(LoginBean loginBean);
        void getError(String error);

    }


二.Per

 LoginView mloginView;
    private final LoginModel loginModel;




    //1.写一个构造方法
    public LoginPresenter(LoginView loginView){
        //因为它要拿M层下的请求数据,所以要用到Molde的对象
          loginModel=new LoginModel();
          this.mloginView=loginView;
    }


    //2.写一个需要传的方法
    public void login(String phone,String password){


     if(phone==null){
         if(mloginView!=null){
             mloginView.getError("手机号不能为空");
         }
     }








       loginModel.login(phone, password, new LoginModel.LoginViewCallback() {
           @Override
           public void getSuccess(LoginBean loginBean) {
               //成功
               if(mloginView!=null){
                   mloginView.getSuccess(loginBean);
               }
           }


           @Override
           public void getError(String error) {
               //失败
               mloginView.getError(error);


           }
       });

    }

三.activity

private EditText edit_name,edit_pwd;
    private Button but_login,but_zhuche;
    private LoginPresenter loginPresenter;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        edit_name = findViewById(R.id.edit_name);
        edit_pwd=findViewById(R.id.edit_password);
        but_login = findViewById(R.id.but_login);
        but_zhuche=findViewById(R.id.but_zhuche);




        but_login.setOnClickListener(this);
        but_zhuche.setOnClickListener(this);
        loginPresenter = new LoginPresenter((LoginView) this);
    }


    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.but_login:
                String name = edit_name.getText().toString();
                String pwd = edit_pwd.getText().toString();
               loginPresenter.login(name,pwd);


                break;


            case R.id.but_zhuche:
                   Intent it=new Intent(MainActivity.this,ZhuChe_activity.class);
                   startActivity(it);
                break;
        }
    }


    @Override
    public void getSuccess(LoginBean loginBean) {
        runOnUiThread(new Runnable() {
            @Override
            public void run() {
                Toast.makeText(MainActivity.this,"成功",Toast.LENGTH_SHORT).show();
            }
        });




    }


    @Override
    public void getError(String error) {
        runOnUiThread(new Runnable() {
            @Override
            public void run() {
                Toast.makeText(MainActivity.this,"失败",Toast.LENGTH_SHORT).show();
            }
        });


    }

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值