Day04

作者: HappyDemon | 来源:发表于2015-11-17 00:04 被阅读40次

(1)ListView

ListView(API)是一个AdapterView,它以列表的形式在Android上表现数据.

Adapter它是一个适配器,是一个常见的ViewGroup容器,在这个容器中通常要借组一个适配器对象来加载数构建Item然后显示这些Item.

基本上以上API都会用到这样的适配器,而且基本的原理是一样的.

ListView与Adapter

ListView主要负责以列表的形式显示数据,并根据需要从Adapter中获取列表项;

Adapter主要负责获取数据,并将数据加工为列表项指定的表现形式,供ListView提取.

通常我们指一个列表项为一个ItemView,一个ListView中可以有很多个ItemView.

通过使用Adapter,可以让ListView不用关心列表项中的数据是怎么来、如何将这些数据添加到列表项中去等等问题,这样实现了数据与表现之间的低耦合.

即同一个ListView控件匹配不同的Adapter则可以显示不同内容与样式,而同一个Adapter也可以为多ListView或其他的AdpaterView而使用

显示一个ListView需要的基本条件

  • ListView控件:用于以列表的形式显示数据
  • 数据源:需要被显示的数据
  • Adapter(适配器):按需获取数据源中的数据,创建每一条显示的ItemView(列表项),并添加到ListView中(让ListView与Adapter)
    关联.
  • 列表项中的布局文件(Xml)

(2)ArrayAdapter

ArrayAdapter是简单的显示文字列表的Adapter,使用ArrayAdapter
时,ListView的每一个列表项,仅能显示一条文字信息.

ArrayAadapter传入的参数的说明

ArrayAdapter adapter = new ArrayAdapter(Context context,int TextViewResourceId,List<T> Objects);

Context context:上下问对象(MainActivity.this),一般都只写this.

int TextViewResourceId:列表项的布局文件的资源ID,该布局文件必须是以TextView为根节点.一般我们可以用自定义的布局和Android官方给的布局.

List<T> Objects:数据源,一般数据源可以定义在内部也可以定义在外部.

AarrayAdapter代码实例流程

//1.获取ListView控件
ListView lv=(ListView)findViewById(R.id.lv);
//2.构建ArrayAdapter对象,并往ArrayAdapter对象中传入参数
ArrayAdapter adapter = new ArrayAdapter(this,android.R.layout.simple_expandable_list_item_1,
            new String[]{"A","B","C","D","E"});
//3.关联Adapter
lv.setAdapter(adapter);

(3)SimpleAdapter

较之ArrayAdapter,使用SimpleAdapter的显示效果更加丰富,列表项不再收到限制,即每个列表项可以包括多个显示控件,不仅仅局限于TextView.

SimpleAdapter的基本使用

在使用SimpleAdapter时,数据源必须是List<?extends Map<String,?>>格式,在List内部的每一个Map对象保存一条列表项数据,在Map中的key为提取出数据的依据,Value为被提取的数据

根据应用到的控件不同,该Map中的Value的意义有所区分,例如应用到TextView中时,该Value将直接作为文字显示,应用到ImageView时,该Value则可以被作为图片的资源ID.

SimpleAdapter构造方法参数

SimpleAdapter adapter = new SimpleAdapter(
            Content content,
            List<?extends Map<String,?>>,
            R.layout.simpleactivity,
            String[] form,
            int[] to);

Content content:上下文对象

List<?extends Map<String,?>>:数据源

int Resource:列表项的布局文件的资源ID,该布局最好为自定义ID

String[] form:数据源中Map的key的数组

int[] to:显示数据的控件的资源ID,这些资源ID必须被第三个参数表示的的布局文件中定义,且数量、顺序必须与第四个参数保持一致.

相关文章

网友评论

      本文标题:Day04

      本文链接:https://www.haomeiwen.com/subject/vxnkhttx.html