ListView
一、ListView介绍:
(一)、 ListView 概念:
ListView是Android中最重要的组件之一,几乎每个Android应用中都会使用ListView。它以垂直列表的方式列出所需的列表项
(二)、ListView的两个职责:
①.将数据填充到布局;
②.处理用户的选择点击等操作。
(三)、列表的显示需要三个元素:
1.ListVeiw:用来展示列表的View;
2.适配器: 用来把数据映射到ListView上的中介;
3.数据源: 具体的将被映射的字符串,图片,或者基本组件。
(四)、什么是适配器?
适配器是一个连接数据(Data)和AdapterView(ListView就是一个典型的AdapterView,后面还会学习其他的)的桥梁,通过它能有效地实现数据与AdapterView的分离设置,使AdapterView与数据的绑定更加简便,修改更加方便。将数据源的数据适配到ListView中的常用适配器有:ArrayAdapter、SimpleAdapter和 SimpleCursorAdapter。
(五)、ListView的常用UI属性:
android:divider
android:dividerHeight
android:entries
android:footerDividersEnabled
android:headerDividersEnabled
二、创建ListView:
(一)、ArrayAdapter实现单行文本ListView:
(无需自定义布局,使用系统提供的布局)
(1)、定义一个数组来存放ListView中item的内容;
(2)、通过实现ArrayAdapter的构造方法创建一个ArrayAdapter对象;
(3)、通过ListView的setAdapter()方法绑定ArrayAdapter
【备注:】
ArrayAdapter有多个构造方法,最常用三个参数的那种。
第一个参数:上下文对象;第二个参数:ListView的每一行(也就是item)的布局资源id;第三个参数:ListView的数据源。
(二)、 SimpleAdapter 实现多行文本ListView:
(自定义item布局文件)
(1)、定义一个集合来存放ListView中item的内容;
(2)、定义一个item的布局文件;
(3)、创建一个 SimpleAdapter 对象;
(4)、通过ListView的setAdapter()方法绑定 SimpleAdapter
(三)、SimpleAdapter实现多行文本且带图片ListView:
(1)、定义一个集合来存放ListView中item的内容;
(2)、定义一个item的布局文件;
(3)、创建一个 SimpleAdapter 对象;
(4)、通过ListView的setAdapter()方法绑定 SimpleAdapter 。
(四)、BaseAdapter自定义适配器实现ListView:
(1)、定义一个集合来存放ListView中item的内容;
(2)、定义一个item的布局文件;
(3)、定义一个 继承了BaseAdapter的子类MyAdapter,重写未实现的方法;(定义ViewHolder,重写getView()方法)
(4)、创建一个内部类:MyAdapter extends BaseAdapter;
实现未实现的方法:getCount() 、getItem()、 getItemId()、 getView();
定义内部类ViewHolder,将item布局文件中的控件都定义成属性;
构建一个布局填充器对象:LayoutInflater.from(context);
调用布局填充器对象的inflate()方法填充item布局文件,将返回的view对象赋值给convertView;
调用convertView对象的findViewById()获取item布局中的控件,将控件对象赋值给ViewHolder中的属性;
给convertView对象设置标签,也就是调用setTag()方法,将ViewHolder对象作为标签贴在convertView对象上;
从根据convertView的标签,从convertView对象上取回ViewHolder对象。
(5)、通过ListView的setAdapter()方法绑定自定义的MyAdapter对象 。
(五)、convertView原理:
Adapter的作用就是ListView界面与数据之间的桥梁,当列表里的每一项显示到页面时,都会调用Adapter的getView方法返回一个View。