一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

Android利用CountDownTimer实现点击获取验证码倒计时效果

时间:2017-05-15 编辑:简简单单 来源:一聚教程网

 代码如下复制代码

packagecom.loaderman.countdowntimerdemo;

  

importandroid.os.Bundle;

importandroid.os.CountDownTimer;

importandroid.support.v7.app.AppCompatActivity;

importandroid.view.View;

importandroid.widget.TextView;

  

publicclassMainActivityextendsAppCompatActivity {

  

  privateTextView tvTime;

  

  @Override

  protectedvoidonCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

    tvTime = (TextView) findViewById(R.id.tv_time);

    tvTime.setOnClickListener(newView.OnClickListener() {

      @Override

      publicvoidonClick(View v) {

        newcountDownTimer(tvTime);

      }

    });

  }

  publicclasscountDownTimerextendsCountDownTimer {

    privateTextView mTextView;

  

    publiccountDownTimer(T text) {

      super(60000,1000);

      this.mTextView = ((TextView)text);

      mTextView.setClickable(false);

      start();

    }

  

    /**

     * start后开始执行的方法,按照间隔时间执行一次

     * @param millisUntilFinished

     */

    @Override

    publicvoidonTick(longmillisUntilFinished) {

      mTextView.setText(String.format("%s秒",millisUntilFinished/1000));

    }

  

    /**

     * 时间结束时调用的方法

     */

    @Override

    publicvoidonFinish() {

      mTextView.setText("获取验证码");

      mTextView.setClickable(true);

    }

  }

}

xml代码:

 代码如下复制代码

  xmlns:android="http://schemas.android.com/apk/res/android"

  xmlns:tools="http://schemas.android.com/tools"

  android:id="@+id/activity_main"

  android:layout_width="match_parent"

  android:layout_height="match_parent"

  android:gravity="center"

  tools:context="com.loaderman.countdowntimerdemo.MainActivity">

  

    android:textColor="#F00"

    android:textSize="18sp"

    android:id="@+id/tv_time"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:text="开始倒计时"/>


 效果图:


热门栏目