Android studio获取验证码倒计时代码

1.首先要写一个倒计时类-Android笔记之倒计时CountDownTimer抽象类

CountDownTimer类的使用很简单,这是一个android.os包下面的抽象类,其构造方法需要传入两个值,第一个参数是你需要倒计时的总时间,单位为毫秒,第二个值为计时变化依据的间隔时间,单位为毫秒.以下是CountDownTimer的构造方法


    //构造方法
    public CountDownTimer(long millisInFuture, long countDownInterval) {
        mMillisInFuture = millisInFuture;
        mCountdownInterval = countDownInterval;
    }

有两个方法必须要重写,而且两个方法都是在UI线程中执行的,不用担心子线程无法更新UI的问题:
onTick(long millisUntilFinished)

每隔设定的间隔时间就会执行此方法,millisUntilFinished为剩余的毫秒值,根据你设置的两个参数值决定的


onFinish()

倒计时结束执行的回调方法

2.代码:倒计时类CountDownTimerUtils.java

package com.example.myapp.Baseactivity;

import android.graphics.Color;
import android.os.CountDownTimer;
import android.text.Spannable;
import android.text.SpannableString;
import android.text.style.ForegroundColorSpan;
import android.widget.Button;

import com.example.myapp.R;

public class CountDownTimerUtils extends CountDownTimer {
    private Button mButton;

    public CountDownTimerUtils(Button button,long millisInFuture, long countDownInterval) {//控件,定时总时间,间隔时间
        super(millisInFuture, countDownInterval);
        this.mButton=button;

    }

    @Override
    public void onTick(long millisUntilFinished) {
        mButton.setClickable(false);//设置不可点击
        mButton.setText(millisUntilFinished/1000+"秒后可重新发送");//设置倒计时时间
        /* SpannableString spannableString=new SpannableString(bt_getcord.getText().toString());//获取按钮上的文字
        ForegroundColorSpan span=new ForegroundColorSpan(Color.RED);//设置文字颜色
        bt_getcord.setAllCaps(false);
        spannableString.setSpan(span,0,2,Spannable.SPAN_INCLUSIVE_EXCLUSIVE);////将倒计时的时间设置为红色
        bt_getcord.setText(spannableString);*/

    }

    @Override
    public void onFinish() {
        mButton.setClickable(true);//重新获得点击
        mButton.setText("重新获取验证码");

    }

}

在登陆界面调用这个类就可以倒计时了,填写三句话

第一句:定义类与变量


第二句:创建对象


第三句:点击获取验证码btn_getcord时,就开始倒计时了

最后的结果:


猜你喜欢

转载自blog.csdn.net/huanhuan59/article/details/80277421