開發日誌10
阿新 • • 發佈:2020-08-11
今天完成了簡訊驗證碼的驗證
用時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("請輸入驗證碼後再提交"); }