您好,登錄后才能下訂單哦!
Android應用中怎么實現一個驗證碼倒計時功能?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
實現
發送驗證碼的時候一般都會有一個按鈕,點擊之后便會給你輸入的手機發送一條驗證碼,我這里使用的是一個TextView,顯示特定的數字,只用設置TextView的點擊事件即可;
Android中有一個類,可以很方便的時候該功能,但是也會存在一個問題,就是在最后一秒的時候,會等待很久才會顯示出“重新發送”的文字,這個類是CountDownTimer,有興趣的朋友可以去研究下,用起來還是挺方便的,不過我后來發現重新開啟一個線程來實現是比較完美的。
代碼如下:
/** * 短信驗證碼倒計時 */ private void startTimer() { registerVerificationCodeTv.setTextColor(getResources().getColor(R.color.text_color_code_green)); registerVerificationCodeTv.setText(getResources().getString(R.string.timer_default_show)); registerVerificationCodeTv.setEnabled(false); new Thread() { @Override public void run() { for (int i = 59; i >= 0; i--) { final int second = i; try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } runOnUiThread(new Runnable() { @Override public void run() { if (second <= 0) { registerVerificationCodeTv.setTextColor(getResources().getColor(R.color.text_get_verification_code)); registerVerificationCodeTv.setText(getResources().getString(R.string.register_re_get_verification_code)); registerVerificationCodeTv.setEnabled(true); } else { registerVerificationCodeTv.setTextColor(getResources().getColor(R.color.text_color_code_green)); registerVerificationCodeTv.setText(second + "s"); } } }); } } }.start(); }
說明:
registerVerificationCodeTv就是那個顯示倒計時秒數的TextView,用的時候只用在registerVerificationCodeTv的點擊事件里面調用此方法就好了。
看完上述內容,你們掌握Android應用中怎么實現一個驗證碼倒計時功能的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。