android 实现同时多个倒计时效果怎么做
答案:2 悬赏:80 手机版
解决时间 2021-11-20 13:13
- 提问者网友:蔚蓝的太阳
- 2021-11-19 15:49
android 实现同时多个倒计时效果怎么做
最佳答案
- 五星知识达人网友:撞了怀
- 2021-11-19 16:28
安卓实现同时多个倒计时效果的步骤:
- 我们首先需要在输入框中输入一个秒数,比如:12,然后获取输入框中的值,显示在一个TextView中;
点击“开始倒计时”按钮,每隔一秒钟,秒数减1,然后显示在TextView中;
点击“停止倒计时”按钮,计时器停止运行,当再次点击“开始倒计时”按钮,计时器继续运行。
全部回答
- 1楼网友:青尢
- 2021-11-19 16:55
每个商品都应该有两个属性值,这里叫它deadLine和isOverdue吧,表示商品的到期时间和是否到期
那么倒计时可以考虑这么实现:设置一个主计时器,每隔1秒发出消息告诉GridView现在的时间,GridView的Item获得这个时间之后就和deadLine比较,如果已经到deadline了,就把数据源中的这项标记成已到期(修改isOverdue的值为true);没到deadline,就计算还差多少时间,显示到GridView的Item里,思路就是这样追问谢谢,能给贴一下代码吗?追答
//每隔1000毫秒执行一次
timer.schedule(new TimerTask() {
@Override
public void run() {
// TODO Auto-generated method stub
gridViewAdapter.notifyDataSetChanged(); //用来刷新gridView
}
}, 0, 1000);
public View getView(int position, View convertView, ViewGroup parent) {
...
long now = System.currentTimeMillis();
if(now > deadline){
//已经到期,状态变更成已过期并更新ItemUI
//你的操作...
}else{
long delta = deadline - delta;//计算时间差
//还没到期,变更倒计时,把时间差换算成 时:分:秒 的格式显示到ItemUI上
//你的操作...
}
...
}
那么倒计时可以考虑这么实现:设置一个主计时器,每隔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时间格式是毫秒形式,如果不是要转换一下
@Overridepublic View getView(int position, View convertView, ViewGroup parent) {
...
long now = System.currentTimeMillis();
if(now > deadline){
//已经到期,状态变更成已过期并更新ItemUI
//你的操作...
}else{
long delta = deadline - delta;//计算时间差
//还没到期,变更倒计时,把时间差换算成 时:分:秒 的格式显示到ItemUI上
//你的操作...
}
...
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯