android 实现同时多个倒计时效果怎么做

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android 实现同时多个倒计时效果怎么做相关的知识,希望对你有一定的参考价值。

android 有一个gridview中显示商品,每个商品都有一个倒计时,要显示同时多个倒计时效果怎么做。

  安卓实现同时多个倒计时效果的步骤:

    我们首先需要在输入框中输入一个秒数,比如:12,然后获取输入框中的值,显示在一个TextView中;

    点击“开始倒计时”按钮,每隔一秒钟,秒数减1,然后显示在TextView中;

    点击“停止倒计时”按钮,计时器停止运行,当再次点击“开始倒计时”按钮,计时器继续运行。

  平时用的每个商品都应该有两个属性值,这里叫它deadLine和isOverdue吧,表示商品的到期时间和是否到期,那么倒计时可以考虑这么实现:设置一个主计时器,每隔1秒发出消息告诉GridView现在的时间,GridView的Item获得这个时间之后就和deadLine比较,如果已经到deadline了,就把数据源中的这项标记成已到期(修改isOverdue的值为true);没到deadline,就计算还差多少时间,显示到GridView的Item里。

参考技术A 每个商品都应该有两个属性值,这里叫它deadLine和isOverdue吧,表示商品的到期时间和是否到期
那么倒计时可以考虑这么实现:设置一个主计时器,每隔1秒发出消息告诉GridView现在的时间,GridView的Item获得这个时间之后就和deadLine比较,如果已经到deadline了,就把数据源中的这项标记成已到期(修改isOverdue的值为true);没到deadline,就计算还差多少时间,显示到GridView的Item里,思路就是这样追问

谢谢,能给贴一下代码吗?

追答

...贴一下核心代码吧

计时器,在Activity里启动,Activity销毁的时候要调用 timer.cancel();关闭计时器

gridViewAdapter是你自定义的适配器

Timer timer = new Timer();
//每隔1000毫秒执行一次
timer.schedule(new TimerTask() 
    @Override
    public void run() 
    // TODO Auto-generated method stub
gridViewAdapter.notifyDataSetChanged(); //用来刷新gridView
    
, 0, 1000);

GridView的自定义适配器的getView方法,deadline时间格式是毫秒形式,如果不是要转换一下

@Override
public View getView(int position, View convertView, ViewGroup parent) 
    ...
    long now = System.currentTimeMillis();
    if(now > deadline)
        //已经到期,状态变更成已过期并更新ItemUI
        //你的操作...
    else
        long delta = deadline - delta;//计算时间差
        //还没到期,变更倒计时,把时间差换算成 时:分:秒 的格式显示到ItemUI上
        //你的操作...
    
    ...

本回答被提问者和网友采纳

java线程怎么做个时间倒计时

不知道你是要计时还是要线程挂起。
计时 你可以使用timer,自己去看一下timer的API, void schedule(TimerTask task, Date firstTime, long period) 安排指定的任务在指定的时间开始进行重复的固定延迟执行,应该是用这个Timer的成员函数。

如果你只是想要线程挂起延时,直接sleep 就OK了。
参考技术A 1. 加一个变量,表示倒计时剩余的毫秒数
2. 如果该变量值为0, 调用interrupt();
3. 每次调用sleep()之前,从该变量中减去要sleep的时间
4.1. 如果结果为负, 调用sleep(剩余秒数)
4.2. 如果结果为正或0, 正常调用sleep();本回答被提问者采纳
参考技术B 具体点!!追问

我就是想做个五子棋的时间倒计时啊

以上是关于android 实现同时多个倒计时效果怎么做的主要内容,如果未能解决你的问题,请参考以下文章

Android:ListView 中的多个同时倒计时计时器

Android开发:验证码倒计时功能实现

浅谈Android的广告欢迎界面(倒计时)

如何在VC6.0里实现多个计时器的同时运行?

jquery实现倒计时效果

Android -- 自定义view实现keep欢迎页倒计时效果