【Android】倒计时

你还在用Handler+Timer来实现倒计时吗?


以前实现倒计时都是使用Handler+Timer,今天介绍一个更简单的方法。


主要就是用CountDownTimer类来实现。

其实很简单,没什么可说的,上代码。


以获取验证码时倒计时为例。


public class TimerCount extends CountDownTimer
{
Button button;
Context context;


/**
* @param millisInFuture
*            计时总时间
* @param countDownInterval
*            时间间隔
* @param button
*            用于显示时间的view,这里是我加上的
*/
public TimerCount(long millisInFuture, long countDownInterval, Button button, Context context)
{
super(millisInFuture, countDownInterval);
this.button = button;
this.context = context;
}


@Override
public void onFinish()
{
button.setText(R.string.get_code_again);
button.setTextColor(context.getResources().getColor(R.color.txt_color_blue));
button.setClickable(true);
}


@Override
public void onTick(long millisUntilFinished)
{
button.setClickable(false);
button.setTextColor(context.getResources().getColor(R.color.gray));
button.setText("重新获取(" + millisUntilFinished / 1000 + "秒)");
}
}


很简单吧,构造方法中的Button和Context都是我自己加上的,Context可以不需要,因为下面是引用资源文件才用到的。

Button的传入显示计时剩下的时间。


至于使用吗,就更简单的,直接new一个对象,然后start就OK了,也不需要stop,它自己都处理了。取消或者中断计时也有cancel方法。


是不是很简单。。。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值