专业网站建站费用百度竞价防软件点击软件
news/
2025/9/29 13:57:00/
文章来源:
专业网站建站费用,百度竞价防软件点击软件,php毕业设计代做网站,server酱 wordpressListViewTimer列表中每一个item都有计时器 (可实现倒计时或者计时器的功能)项目中有时会遇到列表中含有倒计时或者是计时器的需求#xff0c;实现的方式有很多种#xff0c;此Demo中是使用Thread Handler实时的对item的局部进行刷新达到计时或倒计时的功能本项目中实现的是计…ListViewTimer列表中每一个item都有计时器 (可实现倒计时或者计时器的功能)项目中有时会遇到列表中含有倒计时或者是计时器的需求实现的方式有很多种此Demo中是使用Thread Handler实时的对item的局部进行刷新达到计时或倒计时的功能本项目中实现的是计时器功能(当前时间距离过去的一个时间的时间差值)实现步骤1.创建数据模型TaskModelpublic class TaskModel {public String timer; //计时器显示的结果 10:31:30(时分秒的格式)public long sendTime 1547516639000L;//目标时间public long countTime;//long型的时间差值}2.获取服务器端接口中得到的目标时间(最好是long数据类型方便加减操作)准备好数据3.创建Thread,主要是计算当前时间和目标时间的差值也就是countTime字段的值获取当前时间方法long currentTime System.currentTimeMillis();时间差值countTime currentTime - sendTime;页面显示的时间差值long hours (counttime) / (1000 * 60 * 60);long minutes (counttime - hours * (1000 * 60 * 60)) / (1000 * 60);long second (counttime / 1000 - hours * 60 * 60 - minutes * 60);//并保存在商品time这个属性内String hoursStr hours ;String minutesStr minutes ;String secondStr second ;if (hours 10) {hoursStr 0 hoursStr;}if (minutes 10) {minutesStr 0 minutesStr;}if (second 10) {secondStr 0 secondStr;}timer hoursStr : minutesStr : secondStr;4.准备好数据我们就要创建适配器适配器和普通的适配器一样只不过要创建一个ViewHolder的集合mHolderList在onBindViewHolder方法中将每一个ViewHolderadd进mHolderList中//先判断集合中是否包含当前的ViewHolderif (!mHolderList.contains(myViewHolder)) {mHolderList.add(myViewHolder);//添加}然后提供一个方法更新item中时间差/*** 只刷新item中的计时器数据*/public void notifyTime() {for (int i 0; i mHolderList.size(); i) {mHolderList.get(i).mTextView.setText(mData.get(mHolderList.get(i).position).timer);}}5.创建Handler每次收到新的消息就调用Adapter中的notifyTime方法private Handler mHandler new Handler() {Overridepublic void handleMessage(Message msg) {switch (msg.what) {case 1://优化刷新adapter的方法mAdapter.notifyTime();break;}super.handleMessage(msg);}};6.在之前创建好的Thread中获取完时间差值之后创建message并发送给HandlerMessage message new Message();message.what 1;//发送信息给handlermHandler.sendMessage(message);注Thread中要有一个停止发送消息的标记值endThread随着当前页面的生命周期停止ThreadOverridepublic void onDestroy() {super.onDestroy();myThread.endThread true;}具体的详细实现看Demo中每一步都有注释可以看懂;
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/921869.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!