00:00
好,接下来呢,我们来做一下这个从环境服务器获取联系人信息啊,并把它展示到这个联系人列表页面啊,就是哪个页面呢?就是这个页面,这个页面中的他的好友啊,我要给他都展示到这个下面啊,这个布局当中啊,那这个好友呢,他是来源于哪呢?啊,都是来源于环信的服务器。所有的好友信息都保存到这个环境服务器中,你从这个环境服务器中啊,拿到这个好友信息之后,展示到这个列表中,好,那我们来实现一下。来到哪呢?来到这个联系人列表,这个fragment,在这里面找到他的。方法啊,这个是这个业务逻辑的处理的方法啊,来到下面。那我们来实现什么功能呢?从关系服务器获取啊,所有的联系人。
01:05
信息啊,那么第一个方法get contest from。环信。Server。定义这么一个方法啊,从华信服务器拿到。啊,这一下拿到所有的。联系人信息啊。那么既然去是从这个环线服务器去拿这个信息,那么必然就要联网操作啊,那联网就要开一个直线程,第2GET global执行啊,你有一个。去环信服务器去拿联系人信息,那么调用哪个方法呢?Em collect.get instance,然后点联系人的管理者啊,点什么呢?Get,大家看一下get all contest from server,所有的联系人信息啊,通过这个服务器那就就是它了,Alt加回车,先串一下就异常,然后呢,再alt加回车。
02:12
返回一个集合啊,这个集合呢,哎,奇怪了,是实质类型的啊,那大家猜返回的是一个什么的集合呢?是一个环线ID的集合,保存了所有联系人的环线ID,这么一个集合获取到所有的好友。的环线ID啊环线ID,那么拿到这个环线ID之后,哎,我要先进行一一下校验啊,校验什么呢?如果这个环线ID。啊,它不等于那啊且环线ID斯点size大于等于零,哎,接下来我再对它进行操作,否则的话我不对它进行操作。
03:13
那么如果拿到了这个环线ID丝啊,校验也通过了,那么怎么办呢?我要将这个环线ID保存到本地的数据库,保存好友信息到本地数据库啊,同时呢,我要刷新页面。刷新页面,那么保存到本地数据,那就需要这个方法。model.get getp点。联系人的邀请信息,DL。点save啊,Save所有的联系人这里面呢,需要一个集合啊,但是这个集合呢,是一个U正音缝的一个集合,但是呢,我们这里给的是一个环线ID的实训类型的集合。
04:11
那怎么将这个环形ID的集合转换为我需要的联系人的集合呢?这里需要转换。那转换就转换呗,我来一个for循环。实际缓信ID,环信I蒂斯。怎么转换的?我将这里面的所有的环线ID都转换成对应的。In啊,那比较简单的又一个u in。将这个环线ID传进来,这样是不是就将这个环线ID转换为了U1份啊,哎,就这么简单啊,这是循环一次转换一个,那么要循环多式,是不是要转换多式啊,那么创建一个集合it user in for context。
05:14
等于又一个。好。把这个U封装到这个即刻中点。列入这一缝啊,然后呢,把这个封装好的数据添加到这个数据库中,后面这个参数呢啊,它一定是联系人给他一个处。之后呢,我要刷新页面,刷新页面要小心当前是什么线程,当前是直线程,那怎么办呢。啊,简单,Get your activity.run on your right啊,一个。然后呢,在这里面呢,我去刷新页面fresh定义一个方法。
06:02
Refresh contest。把它定义这么一个刷新页面的方法。方法啊,定义这方法之前呢,这个地方我要说一下这个get activity啊,如果你在这个线程中去掉,哎,它是有风险的,有什么风险呢?它有可能为空,你这个在前面一定要进行一个判断,如果get activity等于等于空。那么你下面就不要对它进行操作了,否则的话它就会报一个空指针异常啊,控针异常,因为什么呢?因为你这个页面它在来回快速的切换的过程中啊,这个ITC在子线程中。他有可能获取不到啊,比如说。当前这个页面已经开启了一个线程啊,你这个页面去访问这个环服务器去获取联系人信息,但是呢,他不是一下就获取来了啊,它没有获取到,但是正在获取中,我切换到这个会话页面,会画页面的时候呢,这个线程在后台继续运行,哎,运行成功之后,他会走到这儿,走到这儿的时候呢,但是呢,他已经切换到会话页面了,那么这个联系人页面呢,它是拿不到这个get的这个实例的。
07:21
那么它就会报一个空指针异常啊,这个地方大家要小心好刷新方法二,加回车。创建一下,既然是刷新方法。刷新页面,那首先我要获取数据,获取数据从哪去获取呢?从本地的数据库,There get there get DB manager,从联系人的数据库中啊,获取get。所有的联系人信息啊,拿到这联系人信息之后,第一页首先要校验。校验一下if contest,它不等于空切contest.size它得大于等于零的时候,我再对它进行进一步的处理,否则没有任何意义。
08:16
如果一切校验顺利的话,那么我就要刷新页面了,但是刷新页面的时候大家要小心啊,我当前这个页面继承的是。Is contest list frame是is UI给我们提供的方法,那么刷新的方法呢?哎,这个环新呢,已经给你提供好了,要哪个方法呢?Set。Contest ma。啊,这里呢,是向这个数据库啊,Adapt里面提供数据第二个方法。刷新页面一共这么两个方法。刷新页面这个呢是设置数据,设置数据,但是这个数据呢,哎,大家看一下它是什么样子的呢。
09:09
是map集合一个string类型的key和一个EU啊这一个value,那么我就给他一个value呗,啊,给他一个值。Seven contest map。创建这么一个集合啊,目前没有,那就out加回车创建等于一个给他一个哈。哎,大家要看一下当前我需要一个啊contest map,但是呢,我本地数据库呢,只有一个联系人的数据库啊。这地方又涉及到了一个数据转换啊,转换需要将这个联系人的信息转换为map这种数据信息,那怎么转换呢?很简单,For,循环u in啊。
10:06
然后呢?怎么将它转换成它里需要的数据呢?哎,我首先将它转换成E自由者,我先用一个E自由者。User里面需要传一个参数啊,它这里参数叫username啊,其实是什么呢?其实就是环形的ID,那么这就给他一个环心的ID。啊,因为在这个环境服务器中啊,它只有这个环线ID,所以呢,这个名称也是环线ID。接下来呢,把这个循环获取到这个一者封装到这个集合当中,点set啊,点put。一个K,这个K什么呢?就是这个环线的ID,第2GET环线ID啊,Y6是什么呢?就是这个is。
11:01
这样呢,这个数据就封装好了,那接下来呢,我们运行一下看看效果。是的,是的。好,接下来我们看一下当前这个用户呢,是001啊,那我这边呢是003,他俩已经是好友了,那我再换一个账号。呃,004那个幺注册。登录。啊,暂时他俩不是好友,那怎么办呢?我给他发一个好友邀请。001查找,然后点击添加。这样呢,这好友邀请就发过来了,之后呢,这里面。嗯,我把它退出来,我点击接收按钮。这边呢,就来一个提示告诉你呢啊,邀请被接受了啊,回退,但是我这个列表中并没有这个好友邀请啊,啊没有这个邀请信息啊,我切换一下。再切换回来,是不是这个邀请信息就过来了,哎,他只有再次进入这个页面之后,它才会请求网络啊,才会刷新这个列表啊,这个页面切一下,这边是不是就多一个004啊啊好。
我来说两句