Android 验证码倒计时

本文详细介绍了一种基于Android的倒计时定时器实现方法,通过自定义CountDownTimer类,实现了短信验证码发送后的倒计时功能。文章展示了如何设置倒计时长度、更新UI显示剩余时间,并在倒计时结束后恢复按钮状态。

publicclassCountDownTimerUtilsextendsCountDownTimer{

//发送短信按钮

privateTextViewmTv;

 

/**

*

*@paramtextView

*view

*@parammillisInFuture

*倒计时长

*@paramcountDownInterval

*多长时间

*/

publicCountDownTimerUtils(TextViewtextView,longmillisInFuture,longcountDownInterval){

super(millisInFuture,countDownInterval);

this.mTv=textView;

}

 

@Override

publicvoidonTick(longmillisUntilFinished){

mTv.setEnabled(false);

mTv.setText(millisUntilFinished/1000+"后重发");

 

SpannableStringspannableString=newSpannableString(mTv.getText().toString());

ForegroundColorSpanforegroundColorSpan=newForegroundColorSpan(Color.RED);

/**

*publicvoidsetSpan(Objectwhat,intstart,intend,intflags){

*主要是startendstart是起始位置,无论中英文,都算一个。

*0开始计算起。end是结束位置,所以处理的文字,包含开始位置,但不包含结束位置。

*/

spannableString.setSpan(foregroundColorSpan,0,2,Spannable.SPAN_INCLUSIVE_EXCLUSIVE);//将倒计时的时间设置为红色

 

mTv.setText(spannableString);

 

}

 

@Override

publicvoidonFinish(){

mTv.setText("重新发送");

mTv.setEnabled(true);//重新获得点击

}

 

 

 

 

 

用法

//获取验证码

countDownTimer=newCountDownTimerUtils(register_captcha_tv,60000,1000);

countDownTimer.start();

 

@Override

protectedvoidonDestroy(){

super.onDestroy();

if(countDownTimer!=null)

countDownTimer.cancel();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值