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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,670评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,928评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,926评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,238评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,112评论 4 356
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,138评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,545评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,232评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,496评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,596评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,369评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,226评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,600评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,906评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,185评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,516评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,721评论 2 335

推荐阅读更多精彩内容

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