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

android有一个gridview中显示商品,每个商品都有一个倒计时,要显示同时多个倒计时效果怎么做。... android 有一个gridview中显示商品,每个商品都有一个倒计时,要显示同时多个倒计时效果怎么做。 展开
 我来答
强大的妞儿
推荐于2018-03-29 · 知道合伙人金融证券行家
强大的妞儿
知道合伙人金融证券行家
采纳数:11 获赞数:476
河南城建学院2012级能源学院建环专业燃气方向的学生

向TA提问 私信TA
展开全部

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

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

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

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

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

科特曜U
推荐于2016-05-23 · TA获得超过2334个赞
知道大有可为答主
回答量:1052
采纳率:50%
帮助的人:753万
展开全部
每个商品都应该有两个属性值,这里叫它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上
        //你的操作...
    }
    ...
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式