Android使用CountDownTimer实现倒计时功能



如果时间大于一小时,则显示时  分  秒  ,否则只显示 分 秒,如果不足一分钟,则只显示秒


Activity中的相关声明:

private static final long DOWN_TIMER_COUNT = 3671000;
private MyDownTimer mDownTimer;

onCreate()中

mTimerTv = (TextView)this.findViewById(R.id.timer_notice_tv);
mDownTimer = new MyDownTimer(DOWN_TIMER_COUNT, 1000);
mDownTimer.start();


具体实现的内部类:

	class MyDownTimer extends CountDownTimer
	{

		public MyDownTimer(long millisInFuture, long countDownInterval)
		{
			super(millisInFuture, countDownInterval);
		}

		@Override
		public void onTick(long mill) 
		{
			long a = mill/1000/3600;
			long b = mill/1000%3600/60;
			long c = mill/1000%3600%60;
			if(mill/1000 >= 3600)
			{
				mTimerTv.setText(String.format(getString(R.string.sdk_timer_tv_a), a, b, c));
			}
			else if(mill/1000 >= 60)
			{
				mTimerTv.setText(String.format(getString(R.string.sdk_timer_tv_b), b, c));
			}
			else if(mill/1000 > 0)
			{
				mTimerTv.setText(String.format(getString(R.string.sdk_timer_tv_c), c));
			}
		}
		
		@Override
		public void onFinish() 
		{
			mTimerTv.setVisibility(View.GONE);
			showToast("begin to exam");
		}
	}



strings.xml

    <string name="sdk_timer_tv_a" formatted="false">距离考试\n%s时%s分%s秒</string>
    <string name="sdk_timer_tv_b" formatted="false">距离考试\n%s分%s秒</string>
    <string name="sdk_timer_tv_c" formatted="false">距离考试\n%s秒</string>


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值