CountDownTimer在适配器中的使用
来源:互联网 发布:矩阵乘法公式 编辑:程序博客网 时间:2024/06/06 03:40
我们在使用适配器的时候 一般情况下都是放入各种控件 今天在使用中用到CountDownTimer突然一脸的懵逼 居然不知道怎么去设置(沃德天那么傻) 其实适配器的item内部是可以放进去任何东西的 结果被老大一说 特尴尬
class ViewHolder { TextView textView; //CountDownTimerUtil 控件以外的东西也可以拿到适配器item里面进行复用 不一定是控件哦 CountDownTimerUtil timer; }
由于CountDownTimer在实时倒计时 我们的数据一般是要和服务器数据尽可能保持一致 上拉或者下拉适配器列表时不可能随时获取数据 所以我们保存下数据的获取时间
public class CountDownTimeInfo { public long time; // system 记录数据获取时间 public long system=System.currentTimeMillis();}
接下来看下我们的适配器 由于获取数据显示数据时间差 所以适配器设置的时候应减去对应的时间差
@Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder; if (convertView == null) { holder = new ViewHolder(); convertView=View.inflate(MainActivity.this, R.layout.item_main, null); holder.textView = (TextView) convertView.findViewById(R.id.textview); holder.timer=new CountDownTimerUtil(holder.textView, 0, 1); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } CountDownTimeInfo info = mList.get(position); //实际时间差 maxTime long maxTime=info.time- (System.currentTimeMillis() - info.system)/1000; if(maxTime<=0){ holder.textView.setText("倒计时结束!!!"); }else{ holder.timer.resetCountDownTimer(holder.te } return convertView; }
大家在设置CountDownTimer的时候可能会有疑惑 由于CountDownTimer没有给我们提供重新设置时间方法所以我们在重新设置时间的时候要把原先的CountDownTimer取消掉 重新去设置一个 不然的话就会出现两个或者多个CountDownTimer同时运行 也就是发现一秒钟不到时间 我们只要把原先的取消就可以
“`
public void resetCountDownTimer(final TextView view, long max, long interval) {
if (countDownTimer != null) { countDownTimer.cancel(); } if (max <= 0) { view.setText("倒计时结束!!!"); return; } countDownTimer = new CountDownTimer(max * 1000, interval * 1000 - 10) { @Override public void onTick(long time) { view.setText("提交倒计时 " + DateUtil.getHour3(time / 1000)); } @Override public void onFinish() { view.setText("倒计时结束!!!"); } }; countDownTimer.start();}
“
如果有更好的处理方法欢迎留言指正 不胜感激
项目下载地址:http://download.csdn.net/detail/u010142034/9628505
0 0
- CountDownTimer在适配器中的使用
- 聊聊 CountDownTimer 使用过程中的注意事项
- CountDownTimer使用
- Android中的定时器Timer、AlarmManager、CountDownTimer的使用
- Android中的定时器Timer、AlarmManager、CountDownTimer的使用
- Android 中的倒计时 CountDownTimer
- ImageLoader在适配器中的知识点
- 使用CountdownTimer进行倒计时
- android CountDownTimer的使用
- CountDownTimer的使用
- android倒计时,使用CountDownTimer
- 使用CountDownTimer实现倒计时
- 计时器countdownTimer的使用
- Android CountDownTimer学习使用
- CountDownTimer 简单使用
- CountDownTimer的使用
- Android 倒计时CountDownTimer使用
- CountDownTimer的使用
- Shell函数:Shell函数返回值、删除函数、在终端调用函数
- PHP Filter过滤器全面解析
- 将tomcat做成服务
- 线程间操作无效:从不是创建控件”txtContent”的线程访问它
- 用ionic 创建新项目
- CountDownTimer在适配器中的使用
- springMVC spring-servlet.xml配置详细
- window.history.go()方法
- C++11快餐教程(1)-通过using定义类型的别名
- swift0001
- android developer tiny share-20160912
- Linux常用操作命令
- C#的DrawString
- freemaker、velocity、jsp