Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android中驗證碼倒計時的簡單實現方法示例

Android中驗證碼倒計時的簡單實現方法示例

編輯:關於Android編程

前言

現在的很多app都是使用手機注冊的,為了確認使用的是自己的手機,都會加上一個短線驗證碼的選項,最近公司的項目使用到了這個短信驗證碼,並且要加入驗證碼倒計時功能,也就是60秒才能發送一次驗證碼,再次做過記錄,以後使用的時候,可以隨時拿來用。

實現

發送驗證碼的時候一般都會有一個按鈕,點擊之後便會給你輸入的手機發送一條驗證碼,我這裡使用的是一個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的點擊事件裡面調用此方法就好了。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如有疑問大家可以留言交流,謝謝大家對本站的支持。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved