ListView这个控件在Android开发中用到非常频繁,基本上是个应用都会到,它以列表的形式来展示一些数据,本篇博客只是一个是简单实例,来帮助初学者理解ListView,不涉及到性能优化。
要想使用ListView这个控件,必须要具备三个条件:ListView控件、数据源、数据适配器(xxxAdpater)。
1.ListView控件
这个就不用多说了,就是在布局文件中添加一个ListView
2.数据源
你可以理解为一个存放数据的容器,它可以存放不同类型的数据。它可以是一个String类型的数组:
String[] datas = {"刘备","关羽","张飞","赵云","黄忠","马超"};
也可以是一个Map所组成的List集合:
List<Map<String,Object>> datas = new ArrayList<Map<String,Object>>()
。。。。。。
3.数据适配器(重点,难点)
适配器是个什么鬼呢?初学者可以把他理解成一个将数据从数据源传输到视图控件(TextView,ImageView等)的一个”通道“,Android中的适配器有很多,这里简单介绍几个最常用的:
1.ArrayAdapter
是最简单的一种适配器,它只能适配文字信息
2.SimpleAdapter
从字面上理解感觉它很”Simple“,实际上它是强大的,简单适配器SimpleAdapter继承自BaseAdapter,用于将静态数据映射到xml文件中定义好的视图当中。比如可以指定静态数据为由Map组成的ArrayList。在ArrayList中每个条目对应List中的一行,Map可以包含多项数据。它的高扩展性可以支持绝大部分数据的适配。
3.SimpleCursorAdapter
可以认为是SimpleAdapter对数据库的简单结合,可以方便的把数据库的内容以列表的形式展示出来;
4.BaseAdapter
前两者的父类,要使用它必须需要自定义类继承它,重写它的一些方法,通过这种方法我们可以实现更复杂的布局,更灵活,更高效。
好了,理解了这些我们就可以开始写代码了,今天我们主要通过前面两个适配器来实现ListView。。。o(^▽^)o
一,通过ArrayAdapter实现ListView
思路:
1.实例化一个ListView控件
2.创建一个数据源
3.实例化一个ArrayAdapter
4.为ListView设置适配器
代码:
package com.example.lowp.listview_test;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
/**
* Created by Lowp on 2015/9/10.
*/
public class ArrayAdapterActivity extends Activity{
private ArrayAdapter<String> adapter;
private String[] datas = {
"刘备","关羽","张飞",