永发信息网

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

答案:2  悬赏:80  手机版
解决时间 2021-11-20 13:13
android 实现同时多个倒计时效果怎么做
最佳答案
安卓实现同时多个倒计时效果的步骤:
    我们首先需要在输入框中输入一个秒数,比如:12,然后获取输入框中的值,显示在一个TextView中;
    点击“开始倒计时”按钮,每隔一秒钟,秒数减1,然后显示在TextView中;
    点击“停止倒计时”按钮,计时器停止运行,当再次点击“开始倒计时”按钮,计时器继续运行。
  平时用的每个商品都应该有两个属性值,这里叫它deadLine和isOverdue吧,表示商品的到期时间和是否到期,那么倒计时可以考虑这么实现:设置一个主计时器,每隔1秒发出消息告诉GridView现在的时间,GridView的Item获得这个时间之后就和deadLine比较,如果已经到deadline了,就把数据源中的这项标记成已到期(修改isOverdue的值为true);没到deadline,就计算还差多少时间,显示到GridView的Item里。

全部回答
每个商品都应该有两个属性值,这里叫它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上
        //你的操作...
    }
    ...
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
汽修厂哪些业务属于主营业务
为什么一般AA或者AAA的一次性电池都是1.5V的
账号投诉里“接收结果的qq号码”的问题
无线温湿度基层开发板用哪个好
长安cs35的车灯那有烧糊的味道,是怎么回事
溴素是否属于vocs
寻找5V转3.3V的电源芯片,要求封装:SOT223
机动车超速违法之后没有及时处理,会加倍扣分
在数列{a n }中,其前n项和S n =3?2 n +k,若
Android开发如何删除短信
一步错,步步错。贪图小利害了自己。想死的心
谁给我一只赛尔100级谱尼的号
王者荣耀廉颇好不好用
1656次火车从深圳东站到襄阳经过哪些地方?
伊婉c是小分子还是大分子
推荐资讯
迪庆玉龙县距丽江机场有多远
固体催化剂如何加入间歇式反应器
骨灰学长求助
读者传媒什么时候上市
为什么我把基金卖掉之后的一天是跌的他就扣钱
女孩姓张,明子开头的名字大全
新车怎么快速去味儿
6.7×5.6+5.6×3.4-0.56简便计算
迎宾大酒店(晋城阳城县)地址在什么地方,我要
从厦门回石城是下瑞金东吗?
混床的作用是什么??
聚土网交易有没有保障?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?