Day04

(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必须被第三个参数表示的的布局文件中定义,且数量、顺序必须与第四个参数保持一致.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 通过对数据库操作从而将数据存入数据库以及学习如何动态的将一个textview文本控件添加到Linearlayout...
    月下音符阅读 211评论 0 0
  • 学习Android的同学注意了!!! 学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Android学习交流...
    kingZXY2009阅读 677评论 0 2
  • 前言 ListView在Android开发中十分常见 今天,我将为大家带来ListView与AdapterView...
    Carson带你学安卓阅读 42,933评论 21 216
  • 我一个朋友小杨,心心念念想要读浙大的研究生,努力争取到了保送的机会,不料参加面试时一名之差,没有被录取。回校后老师...
    柳青桐阅读 674评论 4 2
  • 随机创建50个1-4之间的整数,分别找出值等于1和2的元素的数量 输出: 有6名球员,按照场均得分高于六人的平均分...
    那未必阅读 396评论 0 0