00:01
这个呢是比较有难度,但是也是最重要的一个list view。啊,首先呢,我们要对view进行一个基本的理解。List of you。它是用来显示。多个可滑动向列表的一个。我们可以来看一下系统里面有没有list view这个类,有吧。看CTRL加T。它的上面是什么。对吧,没问题,好继续往下看。哎,这是它的一个结构。啊,这里面啊,记住了,如果数据超过一屏是不是可以滑动啊。下面一个。这个list view,它跟前面我们学过的线性布局啊,相对布局啊,真布局它有什么区别呢?它的区别很大,前面我们写的,譬如说线性布局。
01:13
我定义好线性布局以后,是不是可以在里面去定义别的视图啊,在布局文件里面。但是Mr view,你不能在布局文件里面再给他去添加view。就在布局文件里是不行的。他只能通过谁来去添加孩子呢?有个概念。叫adapt。带不了怎么办呀?适配器。好。啊,写错了是吧,来把它改一下。Adapt。知道吗?好,来。
02:03
等会改一下啊,我来看一下他这个带又能干嘛呢。适配器它是将数据啊及我们是在显示个列表,假设我们这里面显示的什么呢?ABCDEG吧。啊ABCDEG大家看啊,在这里面啊。这个里面是列表数据,那总共数据数据很多的时候,我们是不是要用一个容器来装起来呀。那用什么容器呢?无非两种选择,List或者是map。对吧,你说这个容这个数据ABCDEFG,我用list还用map呀,诶你怎么想到list了。就一个。Map就不能用啊,你看abcd吗?这个地方主要是有一个它是不是顺序显示啊,你说开始显示A是吧,那A从第一位会跑到第二位去吗。对,这里面有一个概念叫下标知道吧,是顺序的一个数据吧,有顺序的一个固定的数据。
03:07
啊,或者说我这个地方不一定是我可以设bcda可以吧,可以的。对吧。这是一个有顺序,一是显示的一个列表。所以说他用的是一个list的数据,能不能用速度啊。可不可以,可以,当然可以,对吧,你list可以受数组,那肯定可以,因为我们平常用的就是什么。是瑞丽啊,这里面不就数组吗?好,下面。大家看到啊,它除了它将集合数据和每一个有一个概念。叫item。啊,这个地方有一个什么特别的事情呢,我们要跟大家说一下,你view显示item,它有什么特别的东西啊。你说他你你观察那个列表的时候。
04:02
它除了可以滑动对吧。还有什么别的特别的地方?结构都一样。就每一行,它的结构是一模一样的,对不对,只是里面的什么东西不一样,内容不一样,对,很好。他就需要去把集合数据和item所对应的布局动态的适配到。List view中。看着这地方有一个有三个角色,你view。Item的布局。数据这三个人是吧,这数据集合啊,这是个集合数据,这是某一行的布局。对吧,整体要是一个什么你。所说所谓的适配器就在中间。需要将数据。集合数据,还有布局给他。
05:00
塞到我的什么?你的view里面去。那这个地方我跟大家说一下,它需要涉及到一个循环便利的过程。你得想啊,我这是个集合,数据是个集合吧,我取出一个数据能显示什么?是不是一行啊。对吧,我取是一个数据,接着就去加载一下布局吧,是不是塞到这个集合里面来,塞到这个list view里面是不是显示一行。接着我要显示第二行,我怎么做呀。再取一个数据是吧,再加载一个布局,再去塞进来,是不是相当于这个显示的是A的话,下面是不是显示B啊。看到吧。啊,接着我一次是不是按照刚才的规律一次的往下吧,啊显示C显示D,是不是一次往下显示。能看懂吧。啊,OK。
06:00
那。下面我们要显示一个列表,得涉及到一个重要方法。View还有一个方法叫set adapt。设置adapt。这里面最最难的其实不是list view本身。而是这个at。来。我们有一个效果,这是一个效果,这是我们的在每一个模拟器里面都会有一个特别的应用。啊,叫API demos。就它它是具对一些常用的API的一个测试,嗯,我可以给大家看一个,看一个比较有意思的一个看这里啊。这里面是不是有一个登录的效果,对吧,需要指定大概如果我不指定点登录,它是不是应该有一个提示啊,啊,我们正常的话怎么提示。
07:01
是不是透视呀,说你还没输入对不对,你至少肯定要输入吧。它的效果看看。他是不是在抖动啊,啊左右抖动,诶这种效果是不是比那个透视肯定要酷一点,对不对,用户觉得诶这个应用比较好。就因为这一点,爱上了他啊。还有一些,还有一些别的可说啊,我们找一下。嗯,披着这一个看看有没有什么效果啊。看这。是吧,这都是一些常用的一些空间的一些效果,呃,偏这个地方还有。逼着他们。有测试activity对吧,还测试什么。是不是dialo的啊,各种各样的dialogue嗯,其实我们学就可以照这个学啊,对吧。啊,它里面是有源码的。
08:01
原码在哪是吧,你看这个我们那个。是不是有点类似啊,只是它是不是多设置了八层呢?设置了抬头吧。嗯,对呀。别码在哪是吧,嗯,等会告诉大家啊,先别急。啊。来,下面是我们要做的一个效果。就是显示所有应用的一个列表。这是我们手机微视里面的一个功能啊,我们也可以先做一下。好,它的难题在哪呢?和that。大家看这是整个大的。API的结构,最外一层呢,是一个接口。啊,看到。啊,最最简单的是它。A at。嗯,接着是我们的下一个simple。第三个。Space adapt啊,第四个不太重要,我们基本上用的少,叫simple adapt。
09:03
如果用A呢?用来去显示一个简单的文本列表,还记得刚才我们的APIDEMO是不是有一个简单的文本列表啊?啊,如果说你想显示一个复杂的列表,你可以用simple adapt。或者用base。这个simple大的贝他们有什么区别啊,有什么联系?是不是继承关系啊,父子关系对不对啊,最最重要的是他。Space adapt。我们以后去写项目,基本上就用它了。其他的呢,很少用啊。好。啊,下面呢,一个壳子还在不在,这个用的最少的,你看我的是个灰色的啊。它里面区别在哪?区别就在于我们显示的数据集合不一样,如果是用a det,它用的是这两种结构之中的一种。
10:02
那如果是。一个simple det。那你必须用这样一个结构,估计大家到现在为止最复杂的一个结构就是它了。里面有一个有的是什么map。Map的key运map ves object。用过这么复杂的结构吗?没有吧?好,下面如果你用base adapt,那你就用的是这样一个结构,你说这个叉叉叉什么意思。是不是自定义的一个类型,什么类型都可以对吧?嗯。这个很多时候是我自己定义的一个类型,Person啊,什么student呀啊等相关的一些类型。下面这个呢,跟数据库查询结果集有关啊,后面再说啊,先暂时我们不用它。我们现在要测试的就是他们仨。
我来说两句