学习使用ListView显示列表
来源:互联网 发布:999是什么意思网络用语 编辑:程序博客网 时间:2024/05/11 03:51
ListView是android中显示列表的控件,每一个ListView都可以包含很多个列表项,列表项的个数完全由数据源所决定。每一个列表项特定格式的数据又是怎么加载到视图界面上的呢?这里就需要引入数据适配器。数据适配器的作用就是把复杂的数据(比如,数组/链表/数据库/集合……)填充在指定的视图界面上。(备注 :这里“指定的数据界面“并不一定是ListView,android给我们提供了很多的控件)。
以下例例举两种适配器:
1、ArrayAdapter(数组适配器):用于绑定格式单一的数据,数据源可以是集合或数组。
2、SimpleAdapter(简单适配器):用于绑定格式复杂的数据,数据源只能是特定泛型的集合。
数据适配器是连接数据源与视图界面的桥梁。
数据适配器的实现过程非常简单,只需要三步:新建适配器------>添加数据源到适配器------>视图加载适配器
下面来分别看看ListView加载ArrayAdapter(数组适配器)和SimpleAdapter(简单适配器)的简单案例:
首先是ArrayAdapter:
public class MainActivity extends Activity{ //声明 private ListView listView; private ArrayAdapter<String>arrayAdapter;//数组适配器 private SimpleAdapter simpleAdapter;//简单适配器 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); listView= (ListView) findViewById(R.id.listView);//初始化ListView,绑定视图 //1、新建数据适配器 //ArrayAdapter(上下文,当前ListView加载的每一个列表项所对应的布局文件,数据源) //2、适配器加载数据源 String[]arrData={"测试数据1","测试数据2","测试数据3","测试数据4"};//数据源 arrayAdapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,arrData); //android.R.layout.simple_list_item_1是android自带的布局文件 //视图(ListView)加载适配器 listView.setAdapter(arrayAdapter); }}运行结果如下:
SimpleAdapter简单案例:
public class MainActivity extends Activity{ //声明 private ListView listView; private SimpleAdapter simpleAdapter;//简单适配器 private List<Map<String,Object>> dataList;//声明数据源的list @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); listView= (ListView) findViewById(R.id.listView);//初始化ListView,绑定视图 //1、新建数据适配器 //SimpleAdapter() /* * context:上下文 * data:数据源(List<? extends Map<string,?>> data)一个Map所组成的List集合 每一个Map都会对应ListView列表中的一行 每一个Map(键-值对)中的键必须包含所有在from中所指定的键 * resource:列表项的布局文件ID * from:Map中的键名 * to:绑定视图中的ID,与from形成对应关系 */ //2、适配器加载数据源 dataList=new ArrayList<Map<String,Object>>(); simpleAdapter=new SimpleAdapter(this,getDataList(),R.layout.item,new String[]{"pic","text"},new int[]{R.id.pic,R.id.text}); //android.R.layout.simple_list_item_1是android自带的布局文件 //R.layout.item:自定义列表项样式(pic + text); //3、视图(ListView)加载适配器 listView.setAdapter(simpleAdapter); } //获取数据源 private List<Map<String,Object>> getDataList() { for(int i=0;i<20;i++) { Map<String,Object>map=new HashMap<String,Object>(); map.put("pic",R.mipmap.ic_launcher); map.put("text","测试数据"+i); dataList.add(map); } return dataList; }}运行结果:
0 0
- 学习使用ListView显示列表
- 使用ListView显示信息列表
- 使用ListView显示信息列表
- 使用ListView显示信息列表
- Android学习之ListView显示下拉列表
- Android中使用ListView显示列表
- Android:使用ListView显示信息列表
- ListView列表显示数据
- 列表显示(ListView)
- ListView显示列表
- ListView列表显示通讯录
- ListView显示信息列表
- ListView 列表显示
- ListView显示信息列表
- ListView的列表显示
- Android中使用ListView显示列表之SimpleAdapter的使用
- jQuery mobile 学习11 listview 列表显示 带图
- Android学习_19_采用ListView实现数据列表显示
- 设计模式之里氏替换原则
- PAT 1115 Counting Nodes in a BST (30)
- 51node 1537 分解
- vector
- linux按指定时间删除文件和文件夹
- 学习使用ListView显示列表
- //编写程序求 vector<double> 对象中所有元素之和
- java常见笔面试题和答案
- 静觅 » Python爬虫进阶三之Scrapy框架安装配置
- u-boot源码分析
- Java——String和StringBuffer/StringBuilder字符串的常用方法
- 复杂链表的Clone
- bootloader-我是bootloader设计师
- VMware下仅主机模式(host-only)下的ip配置