00:00
同学们,接下来我们就讲在历史于中的秒杀,这个也就是很多程序员呢,再去在选这个时候,可能这个倒计时倒是很简单去做,就是要做成这个样子,他可能不难,难就难在他可能在滑轮过程这个时间错乱了知道吧,那么用了这个框架过来以后就很好解决,那么他用到的思想。那么就不一样,一会儿给大家介绍啊,它其实是把这个hold呀,放到一个集合中啊,放到集中,放到集合中之后,然后再循环起来去更新的时间,这样的话呢,就不会在滑动时有错位了。好,我们来看一下同学们。在我们这个地方里面,我们同样是来到这里,把这个打开,这个改为我们的这个countdown may comedown you may edit,然后呢,这里面有个list you,对吧。嗯,然后我们呢,去把这个类啊拷贝过来。
01:01
好,最好这个名字改一下对吧,嗯,因为因为我们这个地方可能就其他地方也叫粒子玉了,所以都连错都不报错对吧。那么就改一下名字,先把这个案例这个地方也改一下,重构一下,在这个地方里面呢,我们就叫做啊这个。Down。的一个U的一个历史you啊,叫这个名字啊。好,然后有了过后呢,这里面就改成这个,然后我把它。拷贝过来。这里好,这里面过后呢,然后这里面是还有一个布局啊,所以这个布局你看是其他地方有了,是分类型的这个。这个这个历中用到了,所以这个时候我们要改一改啊好,我们就改成什么呢,Comedown you。
02:06
这个中的隶属有啊好,这个要改为什么。消息。是吧,这布局肯定还没有吧,好,然后我们把它给创建出来。算出来好,这里面还报错,报错的话,这里面是还有一个什么大写,注意布局里面能有大写吗?不能吧,好,然后我们去把它给创建出来。创建出来过后呢,我们把这个之前的这个案例的这个布局呢,啊把它给过来。好,然后跑到这我们地方。好,这个时候呢就OK了,对吧?好,然后来到这个地方里面过后,接下来我们来到功能清单文件里面去配置一下。
03:08
好,这个大家截一下好。那么。把这个呢,后面这个。好,然后呢,把它给拿过来。好,那么我们先去把它运行起来,看看这个效果怎么样再说,然后我们这个地方里面呢,看一下。这边是有个历史,Item还少啊。好,我们一起把它给拿过来。来到这里。那这里面它有一个图片,Test图片,那我们随便写一个来硅谷的一个图片,好,那么这个呢,就是这样的一个信息,然后下面呢,就是一个。一个秒杀这个控件,我看一下能点进去没有,能点进去就证明什么配置正确。
04:03
好,然后我们去运行起来给他看一下啦。把其他不想管。干掉,然后运行起来,然后我们一会去点这个地方啊,现在点是不行的,对吧,好运起来,稍等一下。好快运气起来啦。好点哪里呢?点这里。好,那么我们点这个隶属U这里大家看一下,这不就这不就是秒杀了吗?对不对,好,我们来看一下这个代码,注意在这个地方里面是一个隶属对不对?好,我们来看一看了。首先这个是布局是一个隶属,没有什么自定义吧,那这个这个我们的这个嘞高度。就是这个高度,就是我们的一个什么分割线的高度,然后呢,还自己定了一个颜色,对吧?好,这是一个历史预览。
05:06
然后在这个地方里面呢,初始化这个数据。这是一个来装具。倒计时的一个并对象来装数据的。装哪些呢?有ID,有标题,有一个什么。一个倒计就是一个倒计秒杀这个这个单词是什么意思啊,看一下。是倒计时啊。倒计时。然后这里面他跟我们说了,根据服务器返回的倒计时,或者是手机对应的开奖时间,注意要变成什么毫秒。正常情况最好由服务器返回看到字段,然后由客户呢在校对成手机对应时间,不然误差很大。好,那也就是说我们来看一下了,这个是一个对象。
06:00
好,我们再回到刚才的这个地方,那么它就把它给添加进去,这是一个标题,大家看一下。如果是I等于一的时候,它是从一开始,因为零乘正数等于零吧。那么一乘上20,再乘上我们的1000,这是一秒钟哦。20秒就是倒计20秒,下一次为二的时候就是40秒。40秒为三的时候,是不是就60秒啊这样的一个倒计时,所以大家看一下这地方里面倒计时结束了吧。下面还在,好,我们重新进一下倒计时20秒。40秒60秒是这样的呀,OK。然后这里面做一个教练,注意啊,这个地方是什么,这个是一个什么,到是一个从1990年是吧。到现在的一个时间吧,然后在循环的时候呢,你看他也他做这样的一个事情。
07:01
就是嗯,在这个地方里面呢,他去加上。这个当前的时间,然后得到这个倒计时,这个倒计时是持续的时间呢,加上当前时间,意思就是什么时候结束,这就是啊,计算出什么时候。这个结束的时间注意啊,当前的时间加上倒计时,倒计时是持续的时间吧。其实我们的这个时间就是持续多少时间,加上当天时间。然后是不是等于什么时候结结束啊,所以是N的,这没问题吧,这个是很重要的一步啊数据。因为我们要去在这方去显示嘛,一定要知道这个数据,你看是停止了吧。好,那也就是说我们第一次的话20秒钟,然后再就是说这个是持续的时间,然后让它变变成什么,哪个时刻结束。
08:05
啊,就是要加上当前的实验,就变成那个时刻结束了。OK。好,这是准备数据数据,然后在这个里面把历U呢,给他怎么出的话,然后这个时候来去设置我们的适配器。好,并且把我们的集合传到四中,好四配器的话,注意它这个构造方法里面一六的时候就把一个三角得得到数据,Date是就是我们的一个集合啊,这里面就是时间集合,这个时间集合是用那个并对象啊,并对象里面是就有那个ID标题以及持续的时间呢,注意这个其实要是一个持续的时间就是我们倒计时持续。
09:04
和时间,但是这个时间的话呢,注意了是这,那么我们是最现在我们一般用的是用N的了吧,这个N的时间是不是就是什么。是不是就是加上当年实验那个值啊,所以这个值的话,它也有值啊。我回去。然后有了后这个地方还创建一个什么集合加pass l,这个pass l呢,相当于哈map,当于什么呢?我给大家看一下啊,我搜一下你会知道这哥们呢,相当于哈希map。大家看一下这个地方相当于就是安卓内存优化使用和I map代替航行map。对吧,那也就是说同学们,那么也就是说它相当于是我们的什么呀。比哈希map性能好的这么一个什么map这样的一个类似于这样的一个集合啊,相当于好。
10:07
对吧,好,那么这地方里面呢,就是这么一个东西。好,然后他来装什么呢?抓J的。那也就是什么意思呢?它是这样的,同学们,我们每创建一个视图是是有一个J的,然后它放到一个集合中,然后这个J的对应的数据呢,它也就是也绑定到这个hold上,对不对,然后我们再去把它这个去刷新这个时间的时候。是什么呢?它是负循环取出来刷新知道吧,好,所以它要装一个集合去装厚。OK,然后当这个构造方法一创建的时候,它这又掉了这个方法,这个调方法之后,那么首先呢,如果这个啊,这个值为这个force为force的时候,它就先返回,先帮它执行对吧?但是一进来是为to了,它就往下走,然后呢,先取消,然后这个地方呢,又就发消息,就开始去更新了。
11:06
那么这个时候呢,其实在更新的过程中,其实这个其实这个hold是还没有的,因为这个时候你刚六这个地方嘛。你刚这个构造方杠六嘛,这个后的是没有你是你刷新也没关系,也没有数据让你刷新对吧。但是在我们这个地方里面,当我们的这个get count的执行过后,然后get数开始执行了,这个地方就六我们的什么hold。New过后呢,大家看一下。在这个地方里面,就在hold里面去初始化我们的什么呀。秒杀控件啊,这些还有在我们这个地方里面,这个是这里面其实就是。初始化视图对吧,速度。然后在地方设置T,那这也不变,那这个地方里面就根据位置位置。
12:08
根据位置,然后做一个什么事情呢,得到对应的。时间对象,这是一个时间对象啊,然后得到时间对象过后,他并且把这个时间放到哪里去啊。放到刚才六的这个什么hold里面,所以形成它的一个一个部分,就就是对应的实验对象绑定到对应的hold上是不是好,这就是我们的这个时间。对象啊,就传到对应的后代里面去了,对不对。好。嗯,然后有了之后,我们再回到刚才这个地方来,然后这个地方里面你看他就看了处理时间,如果你的倒计时。是大于零,那如果这个小于零是用,其实这个倒计时是不是就是持续的时间呢?那么如果持续时间没有。
13:05
是只有大于零我们才处理啊,然后我们在在这个地方里面把这个放到。是这个集合中啊,好像map这个集合中啊,好把这个谁啊以这个时间的这个啊,这个这个这里面不是有一个ID吗?这个ID当为什么K,然后再把这个hold放到这个几何中。好,那放到这个分钟过后,在我们这个构造方法一执行的时候,大家看一下。是这个时候就开始,其实就已经值吗?这个地方timeb是一个定时器啊,然后开始它这边就发一个什么hand hand的这块,Hand这里啥没有,然后真正执行的是一个什么这个refresh time roundnerable在这个地方round就是执行,如果这面hold。长度为零就返回了。如果长度。是有有后的,它这个时候就挨过去什么取出来啊,是得到后了吧,后过后,如果当前的这个时间,当前这个当前系统时间如果是大于持续的这个就大于这个N的时间,是不是是已经倒计时已经结束了。
14:17
那倒计时已经结束了之后,他就把这个移除,那如果没有结束,就什么更新出时间,更新更新时间,那这个地方呢,后台里面去调这个方法,就更新时间,这个才是真正的去更新我们的时间,那也就是大家看到的这个地方里面。我点进去这个时间为什么能更新,就靠这个方法。知道吧,然后就是啊,就去减掉,就是我们的这个N的时间,减掉这个当前的时间,然后来不断的去让它变小,去更新啊。好,那同学们在我们这方里面,也就是整体原理而言的话,就是。
15:05
就是这样子的,这个隶属呢,每创建一个我们的item就对应一个。每一个hold是对应的一条特有的数据呀,你看标题一标题二,那么这个数据呢,啊和这个hold啊放在绑定,就是说这个数据呢,放在hold里面,形成hold的一个成员变量。看到没有?然后并且在这个地方里面。去做一个什么是帕,类似于哈希迈普的这么一个啊,这么一个。集合。然后ID把去循环取出来这个这个hold,然后得到时间,然后去刷新循环去刷新,这样的话呢,它就不会导致什么时滑动的时候错乱了,这就是它的一个原理。
16:05
好,那同学们在我们这个地方里面,其实就是我们讲的,在历史阅中秒杀倒计时就搞定了,OK。
我来说两句