MVP注册登录


//M层

public interface IModel {
    void login(User user,int i);
}
 
 
public class MOdel implements IModel {

    private setOnfinish setOnfinishs;
    public interface setOnfinish{
        void finish1(Login login);
        void finish2(Regiest regiest);
    }
    public void MOdel(setOnfinish setOnfinishs){

        this.setOnfinishs=setOnfinishs;
    }

    @Override
    public void login(User user, int i) {

        Map<String,String> map = new HashMap<>();
        map.put("mobile",user.getMobile());
        map.put("password",user.getPassword());

        if(i==0){
            OkHttp3Utils.doPost("http://120.27.23.105/user/login", map, new GsonObjectCallback<Login>() {
                @Override
                public void onUi(Login login) {
                    if(setOnfinishs!=null){

                        setOnfinishs.finish1(login);
                    }
                }

                @Override
                public void onFailed(Call call, IOException e) {

                }
            });
        }else if(i==1){

            OkHttp3Utils.doPost("http://120.27.23.105/user/reg",map, new GsonObjectCallback<Regiest>() {
                @Override
                public void onUi(Regiest regiest) {
                    if(setOnfinishs!=null){

                        setOnfinishs.finish2(regiest);
                    }
                }

                @Override
                public void onFailed(Call call, IOException e) {

                }
            });
        }

    }
}

//V层


public interface IView {
    void loginsuccess(String msg);
    void loginfalse(String msg);
}

//p层

public class pass implements MOdel.setOnfinish{
    private IView iView;
    private MOdel mOdel;

    public pass(IView iView) {
        this.iView = iView;
        this.mOdel=new MOdel();
    }

     public void login(User user,int i){

         mOdel.login(user,i);
         mOdel.MOdel(this);
     }
    @Override
    public void finish1(Login login) {
        if (login.getCode().equals("0")) {
            iView.loginsuccess(login.getMsg());
        } else {
            iView.loginfalse(login.getMsg());
        }
    }

    @Override
    public void finish2(Regiest regiest) {
        if (regiest.getCode().equals("0")) {
            iView.loginsuccess(regiest.getMsg());
        } else {
            iView.loginfalse(regiest.getMsg());
        }
    }
}


//bean层

public class User {
    private String mobile;
    private String password;

    public User(String mobile, String password) {
        this.mobile = mobile;
        this.password = password;
    }

    public String getMobile() {
        return mobile;
    }

    public void setMobile(String mobile) {
        this.mobile = mobile;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    @Override
    public String toString() {
        return "User{" +
                "mobile='" + mobile + '\'' +
                ", password='" + password + '\'' +
                '}';
    }
}

public class Login {

    /**
     * msg : 天呢!用户名和密码怎么都是空
     * code : 1
     */

    private String msg;
    private String code;

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }
}
public class Regiest {

    /**
     * msg : 天呢!用户名或密码不能为空
     * code : 1
     * data : {}
     */

    private String msg;
    private String code;
    private String data;

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getData() {
        return data;
    }

    public void setData(String data) {
        this.data = data;
    }
}

//Main

public class MainActivity extends AppCompatActivity implements IView {

    /**
     * 请输入手机号
     */
    private EditText mEtMobile;
    /**
     * 请输入密码
     */
    private EditText mEtPassword;
    /**
     * 登录
     */
    private Button mBtnLogin;
    /**
     * 注册
     */
    private Button mBtnRegist;
    private static final String APP_ID = "1105602574";
    private Tencent tencent;
    private BaseUiLi baseUiLi;
    private ImageView qq;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        tencent = Tencent.createInstance(APP_ID, MainActivity.this.getApplicationContext());
        initView();
    }

    private void initView() {
        mEtMobile = (EditText) findViewById(R.id.et_mobile);
        mEtPassword = (EditText) findViewById(R.id.et_password);
        mBtnLogin = (Button) findViewById(R.id.btn_login);
        mBtnRegist = (Button) findViewById(R.id.btn_regist);
        qq = (ImageView) findViewById(R.id.iv1);
        qq.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                baseUiLi = new BaseUiLi();
                tencent.login(MainActivity.this, "all", baseUiLi);
            }
        });
        mBtnLogin.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if(TextUtils.isEmpty(mEtMobile.getText().toString())||TextUtils.isEmpty(mEtPassword.getText().toString())){

                    Toast.makeText(MainActivity.this,"不能为空",Toast.LENGTH_SHORT).show();
                }else{
                    new pass(MainActivity.this).login(new User(mEtMobile.getText().toString(),mEtPassword.getText().toString()),0);
                }
            }
        });

        mBtnRegist.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(MainActivity.this, RegiestActivity.class);
                startActivity(intent);
            }
        });
    }

    private class BaseUiLi implements IUiListener {

        private UserInfo userInfo;

        //成功
        @Override
        public void onComplete(Object o) {
            Toast.makeText(MainActivity.this, "授权成功", Toast.LENGTH_SHORT).show();


            JSONObject obj = (JSONObject) o;
            try {

                String openID = obj.getString("openid");
                String accessToken = obj.getString("access_token");
                String expires = obj.getString("expires_in");
                tencent.setOpenId(openID);
                tencent.setAccessToken(accessToken, expires);
                QQToken qqToken = tencent.getQQToken();
                userInfo = new UserInfo(getApplicationContext(), qqToken);
                userInfo.getUserInfo(new IUiListener() {
                    @Override
                    public void onComplete(Object response) {
                        Toast.makeText(MainActivity.this, "欢迎使用☺", Toast.LENGTH_SHORT).show();
                        //获取QQ用户登入信息
                        String qqmessage = response.toString();
                        Gson gson = new Gson();
                        QQUser qqUser = gson.fromJson(qqmessage, QQUser.class);
                        Intent intent = new Intent(MainActivity.this, Fragment01.class);
                        intent.putExtra("qquser", qqUser);
                        startActivity(intent);

                    }

                    @Override
                    public void onError(UiError uiError) {
                    }

                    @Override
                    public void onCancel() {

                    }
                });
            } catch (JSONException e) {
                e.printStackTrace();
            }

        }

        //错误
        @Override
        public void onError(UiError uiError) {

            Toast.makeText(MainActivity.this, "授权失败", Toast.LENGTH_SHORT).show();
        }

        //取消
        @Override
        public void onCancel() {
            Toast.makeText(MainActivity.this, "授权取消", Toast.LENGTH_SHORT).show();
        }
    }

    @Override
    public void loginsuccess(String msg) {
        Toast.makeText(this,msg,Toast.LENGTH_SHORT).show();
        Intent intent = new Intent(MainActivity.this, ShopActivity.class);
        startActivity(intent);

    }

    @Override
    public void loginfalse(String msg) {

        Toast.makeText(this,msg,Toast.LENGTH_SHORT).show();
    }


}



//布局


<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/login_tao"
        android:layout_centerHorizontal="true"
        android:id="@+id/imageView" />

    <EditText
        android:id="@+id/et_mobile"
        android:layout_width="300dp"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="64dp"
        android:hint="请输入手机号"
        android:text="13465045920"
        android:inputType="number" />

    <EditText
        android:id="@+id/et_password"
        android:layout_width="300dp"
        android:layout_height="wrap_content"
        android:layout_below="@id/et_mobile"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="10dp"
        android:hint="请输入密码"
        android:text="111111"
        android:inputType="textPassword" />
    <Button
        android:id="@+id/btn_regist"
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        android:text="新用户注册"
        android:background="#ffffff"
        android:layout_below="@+id/et_password"
        android:layout_alignRight="@+id/et_password"
        android:layout_alignEnd="@+id/et_password" />
    <Button
        android:id="@+id/btn_login"
        android:layout_width="300dp"
        android:layout_height="wrap_content"
        android:background="@drawable/login_login"
        android:layout_below="@id/btn_regist"
        android:layout_alignRight="@+id/btn_regist"
        android:layout_alignEnd="@+id/btn_regist" />

    <ImageView
        android:id="@+id/iv1"
        android:layout_width="90dp"
        android:layout_height="100dp"
        android:background="@drawable/th_qq"
        android:layout_marginTop="38dp"
        android:layout_below="@+id/btn_login"
        android:layout_centerHorizontal="true" />

</RelativeLayout>
//注册布局

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.bawei.com.myapplication.Main2Activity">
    <EditText
        android:id="@+id/et_mobile"
        android:layout_width="300dp"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="64dp"
        android:hint="请输入手机号"
        android:inputType="number" />

    <EditText
        android:id="@+id/et_password"
        android:layout_width="300dp"
        android:layout_height="wrap_content"
        android:layout_below="@id/et_mobile"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="10dp"
        android:hint="请输入密码"
        android:inputType="textPassword" />
    <Button
        android:id="@+id/btn_regist"
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:text="立即注册"
        android:textColor="@color/colorPrimary"
        android:layout_below="@id/et_password"
        android:layout_centerHorizontal="true"

        />
</RelativeLayout>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值