00:00
好同学们,我们呢,讲了这个商品的详情页面啊,接下来我们是这个地方里面要一点就添加到购物车里面去。那么添加到购物车里面去呢?我们是这样的,我们先把它存储到本地。然后呢再同步到服务器,其实我们真实情况下的话,可以有两种做法,一种是第一种就是直接我们一点的话呢,就直接去添加到服务器上,然后呢再同步。还有一种呢,就是填到本地,然后再同步,其实两种都可以啊。那么但是我们这个,因为这没有服务器啊,就可以直接放到我们的这个先发本地,然后以后有服务器了再同步,那么这样的话呢,也可以,那么为了模拟这么一个情况,或者也就是说和真实情况是一样的啊,然后呢,我们就去选一个存储类啊存储类。好,那么这存储类的话呢,我们就叫做好,就是我们的购物车的类好我们去创建出来,也就是在我们在这个地方一点击购物车的时候,我就把当前这个商品信息呢存储啊起来,然后在购物车这个地方,我们就可以什么可以去取出来看得到啊,就是要和我们这个地方啊,我们去看一下这个模拟器。
01:19
还有模拟器。然后呢,一点在这里面过后,也就是一会在购物车里面就能看到这里面的数据,好那接下来我们就选这个类了,好那么这个类的话呢,它是属于我们购物车里面的,好我们就来到购物车这里。就是我们的学生cat。然后右键去。进到目录里面去,然后创建一个新的包。好包的话呢,我们就叫U啊工具好,我们把它擦掉,这个时候呢,它里面就会多一个包,右键我们创建这个类好。好,那这个类的话呢,我们最好要设置一个什么呢?单例模式对吧,那么这一行里面呢,就这么做,怎么做呢?嗯,一般来说我们外界啊都是这样调public好,然后呢啊static静态。
02:16
然后返回一个cut,然后这地方get instance对吧,得到一个实例。好,那么我们这样去做这个事情,然后return什么呢?这个时候我们就需要对这个梦去想一下了。好,去把它给这个定义出来,Instance好,那么呢,如果这哥们它是等于让的是吧,我们就把它。给溜出来这。好,如果等于那的,然后我就把它给溜出来。
03:01
好,那么并且把它一称,把它什么呢?返回回去是吧,好把这个门返回去好,好那么在这个地方里面注意这个要把它改为什么呢?静态好OK,好把它改为静态好,那么这就是得到购物车实力。好,那么我们以后啊注意啊,因为以后我们的购物车里面可能需要上下文,我们这个时候要做这么一个什么样的事情呢?在这里面我们一传进来的时候是去构造吧,构造的时候我们在里面选一个构造方法啊。然后呢,这个构造方法呢,就要去从一个,然后在这个地方里面接一下。Content文,然后呢,我们去接收一下上下文。
04:05
好,那么在这个地方里面呢,我们就要去把这个上下文,那上下文的话,以后我只想用这个类上下文怎么办呢?我们可以放在这里。这不是有一个什么这个MY吗?好,我们去这里面去选一个上下文。好,那么这个时候我们去这样去选,买一个也是选一个静态的,到时候直接去get get的。然后呢,在这个地方里面,我们就叫my content。然后他已死掉化过,我们就在这里把这个数始画好,然后呢,数字化过后,那这个时候就去什么呢?去钙才多。这个get的方法。好,那么这个就把它。
05:01
改为get content。好得到一个商业,好把这个复制过来,因为我们应用了执行过。就是我们整个软件具体是优先执行,软件一运行这里面就有了,知道吧,而且是在内存中只有一份,我们这个时候就可获取这个。直了,好,大家可以看一下,跟上我们的这个就可以了。好,那么在我们这个地方里面它了,这个过后好。我们在这个地方里面呢。要做一个什么事情呢?这个它一构造,我们就要去把。之前存储的数据,把它给什么呢?读取出来,读取出来也就是在我们在这个地方里面,大家可以看一下。也就是说这个之所以有数据,它就是从本地什么立刻去读取到内存中,然后去得以显示的好,那么在这个过程中呢,我们就去把它给去读取出来,好,读取出来我们放到什么样的一个集合中呢?放到这个就是一个SPA。
06:12
L,那么这个是一个什么呢?是一个我看我们要放到哪的good啊,要放这个产品这么一个对象,好,然后呢,我们就去。啊,就叫就叫,叫什么呢,就叫。是他吧,就这名字,然后他一创建,我就把它给溜出来。好,那么我们创建有多大呢?我们就默认100应该差不多够了。好,那么这个控件可能同学们呢,学安卓的话,学加法的时候是以前没有见过是吧,这个是什么呢?是我们安卓引入的一个控件,好,我们看一下是在安卓里面引入的一个控件,好。我们可以给大家。来搜一搜,这是怎么一个控件呢?你看啊,随便看一下,从这个标题我们就知道了,安卓内存优化使用space l和L来这个l map来代替什么还是map,也就是说L的话呢,这哥们的性能呢,什么好于哈线map。
07:22
啊,OK,好,那么就是其实就是什么呢。他性能优于。用于什么呢?用于我们的哈,这个哈希map。买two对吧,好,那么这时候我们把它给算出来,那也就是说以后在内存中缓存的数据注意,然后把这个收掉,内存的数据就用这个啊。那么在这个的话呢。他又不方便。直接把他。
08:02
这个总后为杰森。啊着后我们的这个这个啊,就是说。就是说我们到时候还要用一个历史的去转换,就是存储之前还转换读体,注意音转换,最后呢要跟它,但但是在内存中存储是用它啊好。那么把它创建出来过后,我们就把本地的给读取出来啊好,那么我们就是要本地的就list to什么呢。啊,从列表中转换成我们的L。啊,这个。呃,这个SPA,然后我们就list。总横这么一个方法,那这个方法的作用就在干嘛呢?其实就是从本地读取,然后呢。然后把它给什么呢?加入,把数据读取到,数据加入到哪里呢?到我们的这个二楼。
09:07
中好,那么我们看一下同学们在我们这个地方里面,我们一会得到的数据肯定就是一个。得到一个列表,然后在这里面副词是吧,然后呢去把它。这样去得到一个列表,然后把给溜出来。好。啊,在这个地方得到的,注意这个地方里面我们要做的事情就是,尤其是自己获取吧,我get了or date出的数据,那这个数据是从哪里呢?本地获取啊本地获取。好,那么在这块上面,我们呢,把它写为公共的,因为后面呢,在其他地方我们要通过这个方法去用了啊,就是获取本地所有的数据,好那么在我们这个地方里面呢,我们就要去把它给获取出来,好那同学们我们怎么去获取呢?
10:13
这样子的。在我们这个地方呢,我们去把它给获取出来,对吧,怎么获取呢。我们这样子。我们先要去把从去。去把它。把它给什么呢?从从我们这个工具,从我们的缓存工具里面获取啊,这个时候我们怎么做呢?我们要这样做。首先要从本地获取。电不使用转换成代表就这种事情。本地获取的话,那么时间类型他得到的是一个什么时间类型的一个主串。
11:04
好,然后我们对方里面呢,我们就用一个。缓存工具。啊。Catch,那这个工具呢,我们没有选,我们现在就把它选出来,那么通过它去get我们的实类型的这样的类型好,那么我们就要从一个什么方向稳定去。好,你看上下文有用吧,所以在这个地方,为什么我们要从一个上下文,注意此时的上下文。在我们地方里面,在在这个地方里面上下文是不是C呀,是我们的是吧。这个。它的一个实力好,那么这个时候呢,还要从一个根据U去获取吧,我们就是什么呢,就是。Jason。哈,就用这个字段,然后我们也可以把它给抽取出来。好,那么怎么抽取,右键抽取成一个什么字段。
12:04
点这个额外的什么常量吧,好,这凑出来后面得用。好,那么我们地过后这个工具还没有呢,是吧,把它给出来。好,那么我们创建在哪里呢?因为在其因因为在其他地方有可能还要去缓存,对吧,那我们可以放在公共这里啊这里啊创建一个类。然后在这个地方里面呢,我们这个get这个方法还没有是吧,把它给分出来,好,这个是我们的上下文,这个是我们的一个P,好然后我们要去用什么呢?你学的face这些保存啊,因为它数据不是很多,当然大家也该可以保存到本地啊SP然后。好,我们的SP,那在这个地方里面呢,就是content去get我们的第一个注意啊,在这里面第一个是我们的什么名字,这个是model。
13:08
名字的话,我们就叫硅谷。好,到时候我们呢,叫就叫这个名字,然后模式的话就是什么呢?就是我们的室友。啊。Model。私有的话,别人就是是读不了啊对吧,好,那接下来在这方面SP好就get一个什么实际类型K进来好,那如果没有数据就默认砍为一个空中算,注意千万不要返回浪,返回浪的话呢,就会。特别容易有问题啊好,那么接下来直接把它给返回,把这个干掉好,那同学们在这个地方里面就得到我们的什么。得到保存的什么呀,保存的数据类型的数据好,那么把这个D呢干掉好,那这就是我们的缓存工具。
14:08
对好,那注意这是得到了,那由。有得到就应该有保存吧,这是得到,那我们就把这个复制一下。好,那么就是我们的这个地方呢,就应该是C5。保存实俊是吧,那么这个是三亚文这个K,还有一个就是什么value。好,Y6好,那么这个不变,然后这个不变,然后这个地方里面就是要把它变为一个编辑器。这个就不需要返回了啊啊。就不需要返回,然后地方里面呢,就这地方里面得到一个编辑器,然后呢,这个地方里面就是啊put一个什么是句类型key,然后呢就是value好。
15:06
那么接下来就是什么呢?做一个事情就是提交,别忘了提交啊,好,这个时候就是保存数据,保存实际类型数据,好,那么这个是我们上下文。这是我们的K,这是我们的值,保存。得十是吧,好,那么这个时候我们就有了这个工具,好,那么我们这个地方里面得到过后,注意我们要转为什么呀。转换为我们的列表对吧,那这个时候我们可以在这里面去算一个列表。然后呢,把他给。流出来好,然后呢,如果这个数据一。
16:05
注意啊,If为空,Text u is empty,如果它不为空,我们再去解析嘛,否则会有问题啊。对吧,好,那么使用勾省总分为列表是吧,那这个时候呢,我们就要。去转换一下了,怎么做呢?好这个时候我们就这样,当然最终是把这个返回去,对吧,这种返回去。啊溜一下这样的话是不是就被死的话了,就不会控制人是吧,然后我们去转换,怎么去转换呢?好,那么在我们这个地方里面,我们就要去这样子了,怎么去组合呢?好,这是用到勾绳。勾成的话非常简单啊,前面的课程呢,咱们的硅谷课,前面的课程讲过啊这些,嗯,在我们的。新闻这里面。讲过啊讲过,那么大家去看一下勾成怎么用好,那同学们在我们这个地方里面呢,我们把这个勾成的包过来。
17:09
啊,第三方库勾。啊,我们呢,把它给拿过来。好,那么勾绳这里面没有的话,可以教大家这么弄。右键。创业者。啊,不是创建啊,去右键打开这个。打开我们的这个啊这里,然后点这点这个库。然后呢,我们搜一下这里面有勾绳。直接用。大家可以看一下。就直接有了好,然后同步一下好,同步好了,自动帮我们同步好,然后这个时候呢,我们就可以去录一个。Go。看到没有,然后呢,它可以什么呢?大家可以看一下。
18:00
它可以。注意它可以总分为十菌是吧?那也可以什么呢?我们这个方也可以把一个。是中合伟。对应的类型呢,你看你传什么进去就给传什么进去啊。我们这个时候要想去注意我们现在做的事情,就直接把一个接下来要做一个事情是。直接把我们的什么实际类型。转换转换成什么呢。转换成一个list,知道吧,怎么做呢?它这一方面有一个有一个。这个值就是从一个值这样用这个方法。这个方法,然后呢,第一个参数。第一个参数就是我们的第二参数呢,一个type。
19:02
Type。Talking。然后我们想总换成的是什么这个,所以只要把这个呢写上去,然后在括号这里面写个大括号,然后去get什么。Type,好,所以这样的话就可以把它总分为一个列表了。啊,这地方注意啊,这里面判断不为空才做这种事情,否则会出现空针啊。好,这里面是判空。为空对吧,所为空啊,就不为空的时候。判断。判断是为空,判断不为空的时候。之后执行是吧,好,最终呢,把这个列表返回去,那如果这里为空呢,为空也没关系啊,因为我就返回一个空的过去呗,对不对,好,这样子就不会出现其他异常了。
20:02
好,那么这个时候得到这个数据过后呢,在我们这个地方里面呢。好。我们呢,最好做这样的一个事情。在我们这个地方里面,我们最好单独去抽取。出一个。在这里面呢。我们去把它给得到,就这样吧,然后。在我们这个地方里面呢,接下来。列表的数据要存储到这个这里的内存中吧,好,那接下来把列表。数据转换成谁啊?称我们的SPA的这样的一个数据好怎么做呢?它比较简单,就是。做一个父亲凡呗,是吧,父亲凡。I等于0I。
21:02
这个I小于我们的good的一个什么size I加加。好,那这个时候呢,我们去挨个去取数据呗。取这个数据,然后good列表去get position。啊,根据I去取,然后我们在这个方面要存到这里面去。这怎么存呢?好,它这个地方里面有一个put方法,好那么我们在这个地方里面注意它put这个方法需要一个什么K和值。就key是人的都行。是吧,Y6值,那么我们在这上面看一下在这里面的值啊。大家发现没有,是都是我们实际类型的。没关系,我们把它转好,那这个时候呢,就是那这个我们用谁来做K呢?好,我们用做产品ID啊,唯一标识啊,用它来做。
22:01
也就是在这个服务器,大家看一下。在这个地方里面。啊,用这个ID,因为它确实也是使用类型啊,它虽然只要是双引号包含的。双引号包含的就是使用类型。那如果没有双引号,就是in。我看一下。当然这种这种类似于这种双引号包包的也可以总合为类型,这个也可以转合in的类型啊,就看你解析用什么啊,他们可以互转,但是这个总会为实际类型可以吗?啊,转换为int类型可以吗?肯定不行是吧,如果是数字才可以,如果是数字,像这种数字转换int型可以。好像这种都肯定是int了,你解析的话就。就特啊。好,那么我们接下来就要去把它给转化。然后呢,这个转换一下。Good To Get什么?这个产品ID,那put过后,接下来第二个参数就是谁啊,就把我们的这个goods。
23:07
进去。好,那这个方法就搞定了,对吧?好,这个是我们创建了。好那么久了过后,接下来,接下来我们要去做的就是什么呢?增删改查。啊,现在我们这地方只是读取,不是不是还没有去想增加好,那这个时候public啊,是就是我们的a date。好,那从一个什么呢?B,从一个shopping,就是一个good be。好,然后在这个地方里面,我们去做一个什么样的事情呢?就首先我要去。去增加,增加的话,大家想想在我们这个地方里面,比如说啊。这个产品如果存在了,我再去点一个。
24:02
就变成两个了。是不是就是说要是有一个数,就是存这个状态有多少个啊?对不对,那也就是说在这个地方里面这一条数据,注意这个是不是还加一个字段呢。好,那么我们一会的话呢,还去加上这个字段。好,就是运动类型number。它默认至少要有一个吧,好,我们去set get方法。好,那兔子镜的话呢,再加上。好就方法去选,OK,好这个时候一定要去把它给加上,然后这个地方里面就是我们添加数据。那添加数据要分为两块,第一步添加到我们的什么内存中?
25:05
添到内存中的话呢,其实是就添加到这个集合中。这几合中。然后第二步就要去什么同步到什么本地就再保存一下,这样的话呢,下次我再过获取的时候是吧,或者是手机没电了的时候,我们下次还是可以去获取到好。那同学们这样对方里面我们就去做这个事情,要然后注意要注意一点就是。如果当前数据已经存在,就什么?就去就去,已经存在了,那么就修改成什么。递增。是吧?是递增呢,就是加一个数字是不是可以了,对不对,加一个值。
26:02
好,那么把这个把number改一下就可以了,那怎么做呢?好,这时候我们就要先去做这样的一个事情了。嗯,在这个地方里面呢。就是good temp啊缓存的数据,然后呢,我们要先去什么呀。去。Pass中去获取数据,根据key去获取,对吧,从这里去获取好,那这个时候呢,特协去转换,然后他去get上我们的产品,好,那这个时候就获取过后呢,好,如果这哥们。等于钠,我先说不等于钠吧,不等于钠,那就是。内存中有了这条。
27:01
数据,那么我们就应该在这原来的基础上呢,加上。就是number就在原来的它的原来基础上加上多少啊,加个一,因为点一次就加一一次嘛。好,那else的话呢,就是怎么做呢。就是因为这个相当于得为浪嘛,那为浪的话,那单纯键的值为浪嘛,不为嘛,好就把它给什么存下,然后不管你是添加了这个还是这个,所以我们都要。同步到内存中,然后再要put一次啊put一次就是什么呢?Put。这个是key。这个对方里面就是啊因特类型。然后的话get产品ID,然后就是temp data好。
28:04
那同步内存中好,这就是搞定了,但是注意了,在这个里面你一定要。不过这个地方连默认是一个一是吧,你可以不不传,但是避免漏掉,你可以设置一个number为多少一,至少有一个是吧,没有的话一一个好,那同步到本地啊,我们就是什么提交税务。这个保存到本地对吧,好,那这个方法呢,我们。可以把它给创建一下。好,那么到时候我们统一做存数据啊,本地注意啊,那么在我们这个地方呢,保存到本地的话,是不是我们增加的时候改的时候都要到地。那这时候我们统一去选好增三,好三的话就比较简单了,好复制下。
29:04
Delete。利对,好,那这个是注意啊,这个是A啊,这个是A。好,那么我们在地方里面呢,呃,有了过后啊,我们就要去做这样的事情了,删除数据。删除数据,删除数据怎么删除呢?记忆也是要在内存中删除,然后还有再然后再把。内存的。保存到本地,所以保存到本地就也就把之前的。刚才被删掉了,也把它什么删除掉,意思就是同步一下好,这个怎么做呢。
30:01
好,这个。里面它就有一个利特是吧。好,林木雨有吗?没有,其实两个两两种都可以啊,林木语也可以用delete。那么在这个里面我们就好去删除,怎么删呢?根据K。好,这这就算出一条数据了,简单吧,然后保存到本地,还是调这个方法。按照这个方法。OK,好,那么有了过后呢,在六方里面增三改。改的话,好,我们看一下正常改对吧,那就是啊,其实就是改我们的一些参数啊是吧,好我们。复制下。好,那么就是update。
31:00
Update。Update。对。Street。那就是这个是update对吧。好,那么我们地方里面就是一。然后过后呢,我们就是更新数据好,那么在我们地方里面,我们就要去。去更新怎么更新呢?好也是用这个去更新,它也是。内存中更新,然后同步到本地,好做这样的事情。好,那么在我地方里面,我们就要去啊,就用这个集合。在内存中去更新,好在这方里面怎么做呢,这样子,然后就也是put。
32:08
好把它存出来,然后在这方面呢,点一下去也行。然后转换一下。Good。这个然后呢,把这个去好,这样的话就更新了,图的更新啊好,那么我们同步到本地还是调这个方法。好,增删改查查的话,我们是这量get了,这边得到所有的数据的,就相当于查了,因为我没有去查到某一条战的需求,我们就不用写了。好,那接下来去写代码,写代码怎么做呢?首先我们在这块里面。啊,就是要把列表转换成什么呢?我们的资金类型。
33:09
然后最后一步就把什么时间类型数据保存就行了。好,那么这个时候呢,但是注意列表数据,那列表数据我们要的是什么数据啊。要的是这种列表吧,哪种列表呢?这种列表对吧,这种列表,那这时候我们就还要需要把它内存中。把这个总合为列表,先做这样的事情。在这里第一步把这个转换成。传我们的list。集合。然后呢,使用勾绳把它做这样的事情,第一步做到第二步,第三步做这个。
34:06
好,那么怎么去做呢?好,我们在这个地方里面呢,一个方法吧。嗯,吃饭。To list。那把他给。创建出来。好,然后呢,这样吧,这样他要返回的是一个list。修这个故事,然后呢,把它给拿来。好,那么最好他就有个返回值对吧。好,那么怎么做呢?绿色物质,然后呢,去把它给溜一下。然后把它返回,肯定不能这样是吧,那这是我们要做一个循环,I等于零,I小于pass这个的一个什么长度,I加角好,那么在这个地方里面去挨过去把它给得到。
35:21
好。去获取,怎么去获取呢?好同学们在这个地方里面的话,他可以去怎么用。或者或者GET2个都可以获取啊,那我们就用。用这个呗,啊好,这个去获取我们的病,然后在这个地方里面呢,添加到这个列表中。就是负的好,那这个时候就相当于转换了,把这个转换了,转换成什么。从这种列表转换到我们的历史列表。转好过后这个地方里面呢,它就可以。
36:01
在这个方面。总一个。把一个列表融合为接什么类型的啊这个。串啊好,我们用什么呢?用六一个勾绳,然后to,你看就直接转换,看到没有。我们传一个什么数组进去就可以。对吧,把这哥们。存去好,那得到后,接下来把它用缓存的工具。Catch,然后呢,Save实际。好,那这个时候就是甲文,还有就是key key的话我们之前是有一个杰森cat,然后呢,数据的话就截成好把它给保存去。好,那么证明我们这个是否管用的话,我们来到这个地方,这里面不是有一个叫这个。叫做添加到购物车吗?
37:02
话,那么添加。到购物车,然后这个时候我们就在这个里面做这样一个事情,就是嗯。是错,然后去get得到我们那个实例,然后去。一个数据就是good b是不是把它给添加进去,你看这个就是我们的这个商品信息,对对吧。然后我们在这个地方里面呢,就可以去把它给添加方法添加啊。好,然后在我们这个地方里面的话。添加到购物车。购物车成功了,我们就谈个六,就是谈个吐司,然后怎么去见证,见证我们成功了呢?好,我们来到这里。在这个地方。
38:01
购物车这里好,只要这个方法调的时候,我们cut store去get,然后呢去get或者数据,我们去得到数据过后,那么它返回的是什么呢?一个列表。好,那得到列表过后,我们看看我们这个负循环,I等于零,I这个小于。Good的一个size I加加好,那这个时候我们去打日志T,然后去把这个门里面对应的取出来I,然后去求出镜反出来,那这个退出镜,我看一下是把这个调出来。
39:01
好,我们去把它运起来。好,然后呢,我们去添加一下。点一条数据。好。我现在去要去添加。好,添加成功了,然后呢,我们来到购物车这。好,再看一下。是把它给打印出来了,打印出来了OK,这次就把这根本打印出来了。好,那证明确实成功了,我再点一下。了再结婚回来。看到没有?能这样啊,顶着顶着。点赞点赞。这样吧,我退出。进来。好,直接点购物车。哦,直接点这个购车。好,大家看一下是得到这个数据了,对吧?好。
40:02
然后我们现在只添加一条,我再多添加几条试试。比如说。这个上硅谷这个是吧啊。然后。我们添加一次两次三次。注意添了三次,其实原先有几有一条吧,那就是总共他是打的还是两条,只是有一条数据比较多一些。我们切换一下。好,大家看一下,这里面我们检查一个number。呃,在这个地方里面。这有就有两条数据了吧,有两条数据了。有点聊数据了,OK。在我们这个地方里面就有了两条数据。对吧,就有了,好,那如果我们在这个地方里面再去添加一条呢。
41:02
好。那我们再去点一下。等一下。是有另外一条数据的吧,对吧,在这后里面你看其中有一条数据,Number为三。看到没有,我们点了三次,确实有数据了啊好,那同学们在我们这个地方里面,我们就搞定了这个部分购物车存储类,然后验证,那么如果大家保存在的是本地,就是说这个缓存文件我写的比较简单,如果大家保存到本地SD卡。这时候不要忘了加权限,但是我现在用的是什么。大家可以看一下。的,所以的话呢,这个保存这个数据不需要权限,大家注意这点啊,OK,好把它复制一下,那么以后真实的情况最好是保存在SD卡啊。
我来说两句