好久没写博客,今天做demo的时候做了一个倒计时的功能,主要用到CountDownTimer,实现也非常简单,这里为大家做个简单解释。
首先,CountDownTimer我们要用它,准要是实现四个方法onTick,onFinsh、cancel和start
onTick(long millisUntilFinished):
固定间隔的时候被调用.
onFinsh():
倒计时完成时被调用.
cancel():
取消倒计时.
start():
开启倒计时.
好了,简单介绍一遍,现在看代码
接着,我们需要建立一个类来实现我们的代码。
class TimeCount extends CountDownTimer
{
public TimeCount(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);
}
@Override
public void onFinish() {
btn_send.setText("重新发送信息");
//按键显示
btn_send.setVisibility(View.VISIBLE);
btn_time.setVisibility(View.GONE);
}
@Override
public void onTick(long millisUntilFinished) {
btn_time.setText("请等待20秒(" + millisUntilFinished / 1000 + ")...");
Toast.makeText(MainActivity.this, millisUntilFinished / 1000 + "", Toast.LENGTH_LONG).show();//toast有显示时间延迟
}
}
建立好后,只用建立对象,传入参数就好了(第一个参数为总共倒计时间,第二个倒计时时间间隔)
TimeCount myCount=new TimeCount(20000,1000);
myCount.start();
效果如下(简单做个示范,大家可以把布局做的精美一点):
如果不喜欢这种方法实现倒计时的朋友,可以到
http://www.open-open.com/lib/view/open1343782266665.html
看看瞧瞧,这里一共有五种不同实现倒计时的方式,而且作者说的也很详细。