Android控件——ListView之Adapter提供数据(其二)
2019独角兽企业重金招聘Python工程师标准>>>
上一节中一些列表集合数据到手机屏幕时,通常采用ListView组件+ArrayAdapter.
虽然它能为我们提供展示数据列表的能力,但是展示的项却不能定制,如果我们的项是由2个TextView组成的,它就无能为力了。项目中大部分的不单单是展示简单的项模板,更多时候,我们可以对项模板进行一些定制,来满足我们的需求,假设项模板需要展示2个TextView 呢?怎么办?
我们可以使用SimpleAdapter+ListView来实现。
SimpleAdapter其中一个构造函数如下:
public SimpleAdapter (Context context, List<? extends Map<String, ?>> data, int resource, String[] from, int[] to)
第一个参数:当前上下文对象。第二个参数:一个List类型的泛型集合,泛型类型必须继承之Map类型。第三个:布局资源的ID,
第四个参数:需要绑定的Key列表。第五个参数:与Key列表项对应的资源文件中的具体组件ID集合。
有以上的理论基础,我们知道使用SimpleAdapter会带来这样的好处:
1:可以自定义任何项模板,自由度很高(取决于美工水平)
2:可以为项模板指定一个匹配的数据
我们先来看看项模板的布局,很简单,就是一个ImageView,两个TextView
<? xml version="1.0" encoding="utf-8" ?> <LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent" android:layout_height ="match_parent" > < ImageView
android:layout_width ="wrap_content"
android:layout_height ="wrap_content"
android:id ="@+id/img" >
</ ImageView >
< TextView
android:id ="@+id/txtName"
android:layout_width ="wrap_content"
android:layout_height ="wrap_content"
>
</ TextView >
< TextView
android:paddingLeft ="20sp"
android:id ="@+id/txtLength"
android:layout_width ="wrap_content"
android:layout_height ="wrap_content"
>
</ TextView >
</ LinearLayout >
我们可以定义数据源,当然这个数据源是继承自List集合接口的,并且类型为基础Map接口。如下:
List < Map < String,Object >> lists = new ArrayList < Map < String,Object >> ();
for ( int i = 0 ;i < 4 ;i ++ ){
Map < String,Object > map = new HashMap < String,Object > ();
map.put( " img " , R.drawable.icon);
map.put( " name " , " SimpleAdapter " + i);
map.put( " length " , " 300 " );
lists.add(map);
}
然后我们希望绑定这些数据,到指定的组件中去,全部代码如下:
List < Map < String,Object >> lists = new ArrayList < Map < String,Object >> ();
for ( int i = 0 ;i < 4 ;i ++ ){
Map < String,Object > map = new HashMap < String,Object > ();
map.put( " img " , R.drawable.icon);
map.put( " name " , " SimpleAdapter " + i);
map.put( " length " , " 300 " );
lists.add(map);
}
String []from = { " img " , " name " , " length " };
int []to = {R.id.img,R.id.txtName,R.id.txtLength};
SimpleAdapter adapter = new SimpleAdapter( this ,lists, R.layout.image, from, to);
listView.setAdapter(adapter);
看看运行截图吧:
转载于:https://my.oschina.net/u/1463230/blog/268882
Android控件——ListView之Adapter提供数据(其二)相关推荐
- Android 数据库(SQLite)【简介、创建、使用(增删改查、事务、实战演练)、数据显示控件(ListView、Adapter、实战演练-绿豆通讯录)】
目 录 (壹)SQLite数据库简介 (贰)数据库的创建 (叁)数据库的使用 3.1.SQlite的基本操作 3.1.1.添加数据 3.1.2.修改数据 3.1.3.查询数据 3.1.4.删除数据 ...
- android绿豆通讯录xml,Android 数据库(SQLite)【简介、创建、使用(增删改查、事务、实战演练)、数据显示控件(ListView、Adapter、实战演练)】...
目 录 (壹)SQLite数据库简介 (贰)数据库的创建 (叁)数据库的使用 3.1.SQlite的基本操作 3.1.1.添加数据 3.1.2.修改数据 3.1.3.查询数据 3.1.4.删除数据 ...
- (android控件)ListView的Item中设置按钮实现
前言 在项目的开发过程中,需要Listview的Item中包含按钮的效果.在实际开发过,Item中放置按钮后,ListView 单行选择背景颜色变化的效果没有了. 问题原因 ListView 和 其它 ...
- android控件ListView设置onClick事件
实现思路 1.Activity中实现OnItemClickLisener; impliments AdoeptView.OnItemClickLisener 2.实现(重写)onItemClick方法 ...
- listview控件在php的使用方法,Android_Android编程之控件ListView使用方法,本文实例讲述了Android编程之控 - phpStudy...
Android编程之控件ListView使用方法 本文实例讲述了Android编程之控件ListView使用方法.分享给大家供大家参考.具体分析如下: 控件ListView是一个重要的控件,可以被用作 ...
- Android 控件 RecyclerView 看这篇就够了
[Android 控件 RecyclerView] 概述 RecyclerView是什么 从Android 5.0开始,谷歌公司推出了一个用于大量数据展示的新控件RecylerView,可以用来代替传 ...
- Android 控件 RecyclerView
[Android 控件 RecyclerView] 概述 RecyclerView是什么 从Android 5.0开始,谷歌公司推出了一个用于大量数据展示的新控件RecylerView,可以用来代替传 ...
- Android 控件GridView之仿支付宝钱包首页带有分割线的GridView九宫格的完美实现
Android控件GridView之仿支付宝钱包首页带有分割线的GridView九宫格的完美实现 关注finddreams:http://blog.csdn.net/finddreams/articl ...
- 文件存储、列表控件 ListView 及适配器 SimpleAdapter、BaseAdapter 的使用方 法
一.文件存储 文件存储 Android中的文件存储分为内部存储和外部存储. 内部存储:将应用程序的数据以文件方式存储到设备的内部(data/[你的APP的包名]/files下),当创建的应用程序被卸载 ...
最新文章
- 6.非关系型数据库(Nosql)之mongodb:集群(主从复制)
- 【基础】哥德巴赫猜想
- centos mysql 5.6 源码_Centos7环境中mysql-5.6.39 源码安装
- 关于ios在H5页面长按识别二维码无效
- Java-虚拟机-常量池的表现方式
- oracle-约束-序列
- Matlab C-Mex Round 1
- 嵌入式C语言编程中经验教训总结(一) 详解const、static和volatile
- 【PHP】百度贴吧自动/云签到脚本(PC 端)
- CSS浏览器兼容性的4个解决方案
- HCIP考试-华为证书安全方向已取得
- 重定向时,将Unreal4骨骼调整为Tpose
- 怎么拯救一个不大靠谱的数据库系统 (5 不靠谱的前生)
- Git配置指南与使用
- Ubuntu系统---安装“搜狗拼音法”导致桌面打不开
- python 中list(列表),tupe(元组),str(字符串),dict(字典)之间的相互转换
- 什么是alpha matting?
- 文本、语义和社交分析技术,未来几年市场发展趋势的预测
- 一张图看懂UML类图
- Word文档下载(图片,数据表格)
热门文章
- CDays-3 习题二 (字典及文件读取练习)及相关内容解析。Python 基础教程
- 智能手机市场输家和赢家:Android手机厥后居上
- 【转载】Nessus安全测试插件编写教程
- Linux crontab
- echarts 柱状图颜色_echarts的实战案例一些(二)
- c++——抽象类以及string知识点补充
- 苹果大中华区营收锐减 决定去印度市场“掘金”
- 【转载】Java程序设计入门 (二)
- 修改Windows 2003/2008/2012远程桌面服务端口号
- 聊聊四种Oracle数字取整函数