reader(二)

接下来是在LoginActivity里使用这个开源库,并且实现网络的初始化。在这之前有个服务器的创建,我暂时还不会。所以只用了师兄的服务器URL。

LoginActivity里很简单,因为每个点击事件都已经在开源库中实现了,在这里只要实现 @1  View的初始化

注册界面View的初始化

initRegisterView(registerName registerUser registerPass registerPassRep registerBtn) ;

private void  initRegisterView(TextInputLayout registerName TextInputLayout registerUser ,
                              TextInputLayout registerPass TextInputLayout registerPassRep ,
                              TextView registerBtn) {
    mRegisterBtn=registerBtn ;
    mRegisterName=registerName.getEditText() ;
    mRegisterPass=registerPass.getEditText() ;
    mRegisterPassReq=registerPassRep.getEditText() ;
    mRegisterUser=registerUser.getEditText() ;
}

登录界面View的初始化

initLoginView(loginUser ,loginPass ,loginBtn) ;

private void  initLoginView(TextInputLayout loginUser TextInputLayout loginPass TextView loginBtn) {
    mLoginBtn=loginBtn ;
    mLoginPass=loginPass.getEditText() ;
    mLoginUser=loginUser.getEditText() ;
}


两个方法都在
mlv_login.setListener( new MaterialLoginViewListener() {
中分别初始化。

@2 判断输入是否符合规则。

final String name = registerName.getEditText().getText().toString() ;
final String email = registerUser.getEditText().getText().toString() ;
final String pass = registerPass.getEditText().getText().toString() ;
final String passReq = registerPassRep.getEditText().getText().toString() ;
if (TextUtils. isEmpty(name) || TextUtils. isEmpty(email) ||
        TextUtils. isEmpty(pass) || TextUtils. isEmpty(passReq)) {
    Utils. ToastMsg(LoginActivity. this,  "不能为空!" Toast. LENGTH_LONG) ;
    return false;
}
if (!(email.endsWith( "@qq.com")
        || email.endsWith( "@gmail.com") || email.endsWith( "@foxmail.com")
        || email.endsWith( "@yahoo.com") || email.endsWith( "@163.com"))) {
    if (!pass.equals(passReq)) {
        Utils. ToastMsg(LoginActivity. this,  "两次密码不一致" Toast. LENGTH_LONG) ;
   else {
        Utils. ToastMsg(LoginActivity. this,  "请输入qq、163、gmail、yahoo、foamail" +
                "等邮箱" Toast. LENGTH_SHORT) ;
    }
    return false;
else if(!pass.equals(passReq)){
    Utils. ToastMsg(LoginActivity. this,  "两次密码不一致" Toast. LENGTH_LONG) ;
    return false;
}
setRegisterEnable( false) ;


final String password=loginPass.getEditText().getText().toString() ;
final String email=loginUser.getEditText().getText().toString() ;

if (TextUtils. isEmpty(email)||TextUtils. isEmpty(password)){
    Utils. ToastMsg(LoginActivity. this, "邮箱或密码不能为空" ,Toast. LENGTH_LONG) ;
    return false;
}

setLoginEnable( false) ;


这里Utils. ToastMsg是自定义的Toast。

public class Utils {

    public static void  ToastMsg(Context context ,String msg ,int type){
        if (type!= Toast. LENGTH_LONG&&type!=Toast. LENGTH_SHORT){
            throw new IllegalArgumentException( "Toast Type must be " +
                    "Toast.LENGTH_LONG or Toast.LENGTH_SHORT") ;
        }
        switch (type){
            case Toast. LENGTH_LONG:
                Toast. makeText(context ,msg ,Toast. LENGTH_LONG).show() ;
                break;
            case Toast. LENGTH_SHORT:
                Toast. makeText(context ,msg ,Toast. LENGTH_SHORT).show() ;
                break;
            default:
                break;
        }
    }
}

@3将信息放入Map

注册信息
    //用HashMap进行数据存储
Map<String ,String> params= new HashMap<String String>() ;
   params.put( "name" ,name) ;
   params.put( "email" ,email) ;
   params.put( "password" ,pass) ;

登录信息
final Map<String ,String> params= new HashMap<>() ;

params.put( "email" email) ;
params.put( "password" password) ;

@4 使用okhttp 访问网络并对返回的数据进行解析,根据解析结果进行handler异步更新。

注册信息传递
MyHttpClient. httpPost(MyHttpUrl. HTTP_URL + MyHttpUrl. REGISTER params ,
        new Callback() {
            @Override
            public void  onFailure(Call call IOException e) {
                mHandler.sendEmptyMessage( REGISTER_FAIL) ;
            }

            @Override
            public void  onResponse(Call call Response response)  throws IOException {
                try {
                    JSONObject jsonObject= new JSONObject(response.body().string()) ;
                    if (jsonObject.getString( "register").equals( "true")){
                        mHandler.sendEmptyMessage( REGISTER_SUCCESS) ;
                    } else {
                        mHandler.sendEmptyMessage( REGISTER_FAIL_EXIST) ;
                    }
                }  catch (JSONException e) {
                    e.printStackTrace() ;
                }
            }
        }) ;


登录信息传递

MyHttpClient. httpPost(MyHttpUrl. HTTP_URL + MyHttpUrl. LOGIN params
        , new Callback() {
            @Override
            public void  onFailure(Call call IOException e) {
                mHandler.sendEmptyMessage( LOGIN_FAIL) ;
            }

            @Override
            public void  onResponse(Call call Response response)  throws IOException {
                try {
                    JSONObject jsonObject= new JSONObject(response.body().string()) ;
                    if (jsonObject.getString( "login").equals( "true")){
                        SPUtils. save(LoginActivity. this, params) ;
                        mHandler.sendEmptyMessage( LOGIN_SUCCESS) ;
                    } else {
                        mHandler.sendEmptyMessage( LOGIN_FAIL_PASS_ERROR) ;
                    }
                }  catch (JSONException e) {
                    e.printStackTrace() ;
                }
            }
        }) ;

okhttp的用法:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值