AnjoyoAndroid第四章考试题
一、选择题:(共20题,每题3分)
1. 下面关于Adapter描述有误的一项是( )。
A、Android有以下四种Adapter对象可供开发者使用,分别是ArrayAdapter、SimpleAdapter、SimpleCursorAdapter和自定义的Adapter。
B、Android使用了一个抽象类——BaseAdapter作为各个Adapter实体类的基类,并使用两个接口——ListAdapter和SpinnerAdapter分别作为两种类型的AdapterView——AbsListView(包含ListView和GridView)和AbsSpinner(包含Spinner和Gallery)的适配接口。
C、Android系统提供了几个默认的Adapter类,可供开发者使用,同时,开发者也可以继承Adapter类来自定义Adapter 。 D、Adapter对象在Adapter控件和数据源之间扮演桥梁的角色,它提供了访问数据源的入口,并把从数据源拿到的数据逐项加载到Adapter控件中。 2. 下列关于Adapter的继承关系描述错误的一项是( )。
A、自定义Adapter继承自Adapter。 B、ArrayAdapter继承自BaseAdapter。 C、SimpleAdapter继承自BaseAdapter。 D、CursorAdapter继承自BaseAdapter。
3. 下列关于ListView的特点描述不正确的是( )。
A、采用MVC模式将前端显示和后端数据分离。
B、ListView相当于MVC模式中的V(视图View)。
C、ListAdapter对象相当于MVC模式中的C(控制器Control)。
D、为ListView提供数据的List或数组相当于MVC模式中的M(数据模型Model)。 4. 下列关于ListView的XML属性描述错误的一项是( )。
A、在XML布局代码中将ListView的位置设为占满整个Activity,可以将ListView填充满整个Activity。
B、ListView与其它的UI控件相同,在XML布局文件中通过
C、以把ListView放在布局控件中,让其只占界面的某一部分。
D、直接让Activity继承自ListAdapter可以将ListView填充满整个Activity。 5. 下列关于四种类型的Adapter描述有误的一项是( )。
A、SimpleCursorAdapter专门用来把一个Cursor(游标)中的数据映射到列表中,Cursor中的每一条数据映射为列表中的一项。
B、SimpleAdapter比ArrayAdapter复杂,适合于每一个列表项中含有不同的子控件,只能是含有一个图片和一串文本的组合。
C、ArrayAdapter是最简单的Adapter,适合于列表项中只含有文本信息的情况,是填充文本列表最简便的一种方式。
D、自定义Adapter是完全自行定义数据的适配方式,灵活性最强,但使用起来比前三个复杂。
6. 下列关于为ListView填充数据描述错误的一项是( )。
A、ArrayAdapter是最简单的Adapter,适合于列表项中只含有文本信息的情况,是填充
7.
8.
9.
10.
11.
12.
文本列表最简便的一种方式。
B、SimpleAdapter要比ArrayAdapter复杂,适合于每一个列表项中含有不同的子控件,但只能含有一个图片和一串文本的组合。
C、自定义Adapter是完全自行定义数据的适配方式,灵活性最强,但使用起来比其它三个复杂。 D、SimpleCursorAdapter是专门用来把一个Cursor(游标)中的数据映射到列表中,Cursor中的每一条数据映射为列表中的一项。
下列关于ListView响应用户的单击事件说法有误的一项是( )。 A、ListView可以使用setOnItemClickListener()方法响应用户的单击事件。 B、在ListView的onItemClick 方法里的parent参数表示发生点击动作的ListView对象。 C、在ListView的onItemClick 方法里的view参数表示在ListView中被点击的View。 D、在ListView的onItemClick 方法里的id参数表示被点击的项在ListView中的位置,与其上的数据在数据源中的位置对应。
下列关于ListView响应用户的长按事件说法有误的一项是( )。
A、ListView可以使用setOnItemLongClickListener()方法响应用户的长按事件。 B、在ListView的onItemClick 方法里的parent参数表示发生点击动作的ListView对象。 C、在ListView的onItemClick 方法里的position参数表示被长按的列表项在ListView中的位置。 D、在ListView的onItemClick 方法里的id参数表示被长按的列表项的行id,与其上的数据在数据源中的位置对应。
下列关于ArrayAdapter描述错误的一项是( )。 A、ArrayAdapter是很便于使用的一种Adapter,它常被用来处理列表项的内容全是文本的情况。 B、ArrayAdapter是继承自BaseAdapter的一个具体的类,它使用数组填充AdapterView。 C、ArrayAdapter可以接受数组作为数据源,也可以使用List
B、SimpleAdapter可以为每一个列表项中包含多个不同控件的ListView填充数据。 C、SimpleAdapter只能给ListView填充数据,不可以为其它的Adapter控件填充数据。 D、SimpleAdapter填充ListView的过程就是反复使用Map中的数据填充XML布局文件中的各个控件的过程。
下列关于SimpleCursorAdapter描述错误的一项是( )。
A、Android系统中,从数据库查询到的数据都存放在Cursor或者List
C、在SimpleCursorAdapter中,与要填充的项进行匹配的是Cursor的字段,也就是数据库中的数据字段名。
D、SimpleCursorAdapter与SimpleAdapter的用法很相似。 下列关于自定义Adapter描述不正确的一项是( )。 A、自定义Adapter可以不用继承自BaseAdapter。 B、自定义Adapter继承BaseAdapter之后,需要至少重写getCount()、getItem()、getItemId()和getView()这四个方法。
C、自定义Adapter继承BaseAdapter之后,还需实现ListAdapter和SpinnerAdapter两
13.
14.
15.
16.
17.
18.
19.
个接口。
D、ListView、Spinners、GridView和Gallery这四种控件能用自定义Adapter来填充。 下列关于ListView工作的描述错误的一项是( )。 A、当列表里的每一项显示到页面时,都会调用Adapter的getView()方法返回一个View。 B、ListView在开始绘制的时候,系统首先调用getItem (),根据其返回值得到ListView的长度。
C、Adapter对象根据ListView返回值得到的ListView长度,然后调用getView()一行一行地绘制ListView的每一项。
D、ListView中有多少项,就应该调用多少次getView()方法去绘制一项的界面。 下列关于ListView的缓存描述有误的一项是( )。
A、在ListView的缓存中Recycler是Android中专门用来处理缓存的组件。 B、ListView先通过getView()方法请求一个View,然后请求其它可见的View。
C、当列表第一项滚出屏幕,并且一个新的项从屏幕低端上来时,ListView会再请求一个View。 D、通过ListView的缓存机制,大大地减少了创建新Adapter的次数,从而提升了ListView的性能。
下列对于常用的AdapterView描述有误的一项是( )。 A、Gallery是一个显示缩略图的控件,它可以把子项显示在一个中心锁定且水平滚动的列表中。 B、GridView是一个表格显示资源的控件,其上显示的资源只能使用ArrayAdapter去填充。
C、Spinner也表现为一种列表,它的主要作用是让用户进行选择,比如一个下拉列表。 D、ListView和GridView同属于AbsListView的子类,两者具有相似性。 下列关于Spinner的描述错误的一项是( )。
A、Spinner也表现为一种列表,不过它的主要作用是让用户进行选择,比如一个下拉列表。
B、Spinner中显示的信息通常不是单一结构的,常用ArrayAdapter来填充Spinner。 C、在XML文件中先定义好要加载的数据资源,然后使用ArrayAdapter.createFromResource()方法把该资源加载给Spinner。 D、直接在Java代码中使用ArrayAdapter对象,把List
下列关于Gallery描述有误的一项是( )。 A、Gallery是一个显示缩略图的控件,它可以把子项显示在一个中心锁定且水平滚动的列表中。
B、默认的Gallery是以Theme_galleryItemBackground作为背景并使用开发者提供的Adapter为其中的每一项View填充数据。
C、Gallery中的View需要使用Gallery.LayoutParams属性作为它的布局参数类型。 D、只能使用使用自定义Adapter填充Gallery。 下列关于GridView描述错误的一项是( )。 A、GridView是一个表格显示资源的控件。
B、GridView上显示的资源可以使用Adapter去填充。 C、GridView只能在一个可滚动的方向上显示资源。 D、使用BaseAdapter的子孙类可为GridView填充数据。
Android有以下哪四种Adapter对象可供开发者使用( )。
A、ArrayAdapter、SpinnerAdapter、SimpleAdapter、SimpleCursorAdapter B、ArrayAdapter、SimpleAdapter、SimpleCursorAdapter、自定义的Adapter C、BaseAdapter、SpinnerAdapter、ListAdapter、SimpleCursorAdapter D、BaseAdapter、ArrayAdapter、SimpleAdapter、自定义的Adapter 20. 下列说法错误的一项是( )。
A、常用的AdapterView有ListView、GridView、Gallery和Spinner。
B、常用的Adapter有ArrayAdapter、SimpleAdapter、SimpleCursorAdapter和自定义的Adapter。
C、ListView是比较常用的控件,它能响应用户单击事件和长按事件。
D、ListView中不管有多少项,都仅用调用Adapter的getView()方法一次去绘制每一项的界面。
二、简答题:(共5题,每题8分)
1. 请写出Android中的不少于四个Adapter控件。 2. 请写出Android中的不少于四种Adapter对象。 3. 请写出ListView的特点。
4. 请写出ArrayAdapter、SimpleAdapter、SimpleCursorAdapter和自定义的Adapter各自的
特点。
5. 请简单介绍一下ListView的缓存机制。
答案:
一、选择题: 1~5:CACDB 6~10:BDDDC 11~15:AABDB 16~20:BDCBD 二、简答题:
1. 答:ListView、Gallery、Spinners、自定义Adapter控件和GridView等。 2. 答:ArrayAdapter、SimpleAdapter、自定义Adapter和SimpleCursorAdapter。
3. 答:①采用MVC模式将前端显示和后端数据分离。②该控件不能使用ListView.add或
类似方法添加数据,需要指定一个Adapter对象,通过Adapter对象获得需要显示的数据,这个Adapter需要实现ListAdapter接口。③为ListView提供数据的List或数组相当于MVC模式中的M(数据模型Model)。④ListView相当于MVC模式中的V(视图View)。⑤Adapter对象相当于MVC模式中的C(控制器Control)。
4. 答:①ArrayAdapter:最简单的Adapter,适合于列表项中只含有文本信息的情况,是填
充文本列表最简便的一种方式。②SimpleAdapter:比ArrayAdapter复杂,适合于每一个列表项中含有不同的子控件,比如一个图片、一串文本和一个按钮的组合。③SimpleCursorAdapter:专门用来把一个Cursor(游标)中的数据映射到列表中,Cursor中的每一条数据映射为列表中的一项。Cursor常用在数据库查询中,会把查询到的若干条记录放在一个Cursor中。④自定义Adapter:完全自行定义数据的适配方式,灵活性最强,但使用起来比前三个复杂。适合于当前三个Adapter不能满足需求的情况下。 5. 答:①如果有几千、几万甚至更多的项时,其中只有可见的项存在于内存中,其它的都
在Recycler中,Recycler是Android中专门用来处理缓存的组件。②ListView先通过getView()方法请求一个View,然后请求其它可见的View。convertView在getView中是空的(null)。③当列表第一项滚出屏幕,并且一个新的项从屏幕低端上来时,ListView会再请求一个View,这时,convertView已经不是空值了,它的值是滚出屏幕的第一项,之后只需设定新的数据,然后返回convertView即可,而不必重新创建一个View。