Android:提交页面多个字段验证 从if 到try -catch的转变

需求:提交页面多个字段并验证


 比如注册页面:

优化前:

protected boolean Check01() {


login_name=etLoginName.getText().toString().trim();
if (login_name != null && login_name.length()>0){
if(Verification.isName(login_name)){
                    mobile_number=etPhone.getText().toString().trim();
                    if (mobile_number !=null && mobile_number.length()>0){
                    if(Verification.isPhone(mobile_number, 11)){
                    name=etName.getText().toString().trim();
                    if (name !=null && name.length()>0){
                    if(Verification.isRealname(name)){
                    pwd = etPsw.getText().toString().trim();
                    pwd_again = etRepsw.getText().toString().trim();
                    if (pwd != null && pwd.length() > 0) {
                    // TODO
                    if (Verification.isPassword(pwd)) {
                    if (pwd_again != null && pwd_again.length() > 0) {
                    if (Verification.isPassword(pwd_again)) {
                    if (pwd.equals(pwd_again)) {
                    //第一步验证正确
                   
                    } else {
                    Toast.makeText(act, "两次密码不相同",
                    Toast.LENGTH_SHORT).show();
                    }
                    } else {
                    AppUtil.showToast(act,
                    getString(R.string.login_pwd));
                    }


                    } else {
                    Toast.makeText(act, "请再次输入密码", Toast.LENGTH_SHORT)
                    .show();
                    }
                    } else {
                    AppUtil.showToast(act,
                    getString(R.string.login_pwd));
                    }
                    } else {
                    Toast.makeText(act, "请输入密码", Toast.LENGTH_SHORT).show();
                    }
                    }else{
                    AppUtil.showToast(act, getString(R.string.login_realname));
                    }
                    }else{
                    AppUtil.showToast(act, "请输入真实姓名");
                    }
                   
                    }else{
                    AppUtil.showToast(act, "手机号码格式错误");
                    }
                    }else{
                    AppUtil.showToast(act, "请输入手机号码");
                    }
}else{
AppUtil.showToast(act, getString(R.string.login_name));
}
}else{
AppUtil.showToast(act , "请输入登录名" );
}


return true;
}


验证优化前:

public static boolean isName(String name) {
boolean b = false;
String str1 = "^[a-zA-Z]{1}[a-zA-Z0-9]{0,29}";
String str2 = "^[\u4e00-\u9fa5]+$";
if (name.matches(str1)) {
int length = name.length();
if (0 < length && length <= 30) {
b = true;
}
} else if (name.matches(str2)) {
int length = name.length();
if (0 < length && length <= 10) {
b = true;
}
}
return b;
}


优化:利用函数Exception,抛出异常 


public void onClick(View v) {

Intent in = null;
switch (v.getId()) {
case R.id.btn_login://登录


if (AppUtil.isFastDoubleClick()) {
return;
}

try {
Verification.isNull(etAccount);
Verification.isNumeric(etAccount);
Verification.isNull(etPsw);
login();
} catch (VerificationException e) {
e.printStackTrace();
Toast.makeText(act, e.getMessage(), Toast.LENGTH_SHORT).show();
}
break;
case R.id.tv_regstaccount: //注册
in = new Intent(getActivity(), RegistrationActivity.class);
startActivity(in);
getActivity().finish();
break;


验证:

/**

* @param et
* @throws VerificationException
*/
public static void isNumeric(EditText et) throws VerificationException{
if(isNumeric(et.getText().toString())) {
throw new VerificationException(et.getHint() + "不能为纯数字");
}


验证异常函数

package com.xingoxing.util;


/**
 * 验证异常
 * @author lxs
 * @date 2014-4-1
 */
public class VerificationException extends Exception {


private static final long serialVersionUID = 7985408493623643924L;


public VerificationException() {
super();
}


public VerificationException(String detailMessage) {
super(detailMessage);
}

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值