今天完成了短信验证码的验证
用时4小时
遇到的问题:
代码的逻辑出错了,在这个页面共有4个判断
用户名是否为空,手机号是否为空,验证码是否填了,验证码是否正确
源代码:
//获得用户输入的验证码 String name = et_userName.getText().toString().replaceAll("/s",""); String code = et_checkecode.getText().toString().replaceAll("/s",""); String pn = et_phonenum.getText().toString().trim().replaceAll("/s",""); String pw = et_password.getText().toString().replaceAll("/s",""); if (TextUtils.isEmpty(name)) {//判断用户名是否为空 toast("请输入用户名"); } else if (!TextUtils.isEmpty(name)) {//用户名非空的情况下判断唯一性 /** * * * 判断填写的用户名(这里的变量是name)是否是唯一的 * * */ } else if (TextUtils.isEmpty(pn)) {//判断手机号是否为空 toast("请输入手机号"); } else if (!TextUtils.isEmpty(pn)) {//手机号非空的情况下判断唯一性 /** * * * * 判断填写的手机号(这里的变量是pn)是否是唯一的 * * */ } else if (TextUtils.isEmpty(pw)) {//判断密码是否为空 toast("请输入密码"); } else if (!TextUtils.isEmpty(code)) {//判断验证码是否为空 //验证 SMSSDK.submitVerificationCode( country, phone, code); }else{//如果用户输入的内容为空,提醒用户 toast("请输入验证码后再提交"); }
而我当时写的时候,if(手机号==null)
余下的就是else if了(如上代码),后来在真机上验证时,明明是填好的填对的,点击之后没有响应(里边也没写东西,能有反应就怪了)
我就开始一个一个试探,
先不填用户名,报错
不填手机号,不报错了,到这我就发现了错误,查找到对应代码,才发现我这个错误,改了之后就成功了
改后的代码:
//获得用户输入的验证码 String name = et_userName.getText().toString().replaceAll("/s",""); String code = et_checkecode.getText().toString().replaceAll("/s",""); String pn = et_phonenum.getText().toString().trim().replaceAll("/s",""); String pw = et_password.getText().toString().replaceAll("/s",""); if (TextUtils.isEmpty(name)) {//判断用户名是否为空 toast("请输入用户名"); } else if (!TextUtils.isEmpty(name)) {//用户名非空的情况下判断唯一性 /** * * 判断填写的用户名(这里的变量是name)是否是唯一的 * */ if (TextUtils.isEmpty(pn)) {//判断手机号是否为空 toast("请输入手机号"); } else if (!TextUtils.isEmpty(pn)) { //手机号非空的情况下判断唯一性 /** * * * * 判断填写的手机号(这里的变量是pn)是否是唯一的 * * */ if (TextUtils.isEmpty(pw)) {//判断密码是否为空 toast("请输入密码"); } if (!TextUtils.isEmpty(code)) {//判断验证码是否为空 //验证 SMSSDK.submitVerificationCode( country, phone, code); } } } else{//如果用户输入的内容为空,提醒用户 toast("请输入验证码后再提交"); }