Android之ListView(一) -- 基本(ArrayAdapter、SimpleAdapter)

Android中有一种   “高级”   控件,之所以   “高级”,是因为,他的实现过程类似于MVC框架,数据和视图是分开的,不像其他控件,拖过来就能用,这一种控件就是AdapterView类控件,AdapterView又分为几中,常用的有ListView,Spinner,GridView。ListView是我们平时最常用的一种。我们经常有这样的需求,简单的展示列表信息,或者展示信息并且要有点击交互等。ListView通常的作用就是这两个:

1、展示信息到布局文件(通常是列表信息)

2、处理用户的点击选择等事件

一、展示信息

使一个LIstView工作通常需要三个元素:

1、展示数据的控件,ListView中每一列的view,(通常是一个单独的布局文件)

2、展示的数据,要填充到view的数据信息

3、连接数据与ListView的适配器(Adapter)

从上面三个元素可以看出,要熟练的使用ListView,还是要详细的了解适配器。常用的适配器大致有四种:BaseAdapter(通用的基础适配器)、ArrayAdapte、SimpleAdapter(绑定在xml布局文件中定义的控件对应的数据)、SimpleCursorAdapter(绑定游标得到的数据)。除了这四种,还有好多适配器,各种适配器转换数据的方式和能力各不一样。

1、ArrayAdapter

绑定一个数组,支持泛型操作

ArrayAdapter使用非常简单,首先在布局文件中增加一个ListView控件,并设置控件宽、高、id等属性。例如:

android:layout_width="fill_parent"

android:layout_height="fill_parent"/>

然后再Activity中初始化

String[] strs =newString[] {    "first", "second", "third", "fourth", "fifth"    };

lview = (ListView) findViewById(R.id.lview);//得到ListView对象的引用

/*为ListView设置Adapter来绑定数据*/

lview.setAdapter(newArrayAdapter(this, android.R.layout.simple_list_item_1, strs));

ArrayAdapter的参数有三个,其中第一个参数是当前上下文,第二个参数是ListView子项布局的id,第三个参数是要绑定的数据。其中第二个参数android.R.layout.simple_list_item_1是Android内置的布局文件,这个布局文件中只有一个TextView用来简单的显示一段文本。setAdapter方法的作用是将建好的适配器对象ArrayAdapter传递给ListView。

2、SimpleAdapter

SimpleAdapter的功能要比ArrayAdapter的功能强大的多,可以显示图片,文字,选择框等多种需求。SimpleAdapter的数据源只能是List>形式的数据。

SimpleAdapter使用方法:

首先在布局文件中增加ListView控件,这里不展示代码。然后要增加一个定义ListView中每一项的布局文件,布局文件中的控件及展示,可以根据自己的需要定义。最后在java代码中为ListView绑定数据。例如:

ListView lview = (ListView) findViewById(R.id.lview);

/*定义一个动态数组*/

ArrayList> listItem = newArrayList>();

/*在数组中存放数据*/

for(inti=0;i<10;i++)  {              

HashMap map =newHashMap();            

map.put("ItemImage", R.drawable.icon);//加入图片

map.put("ItemTitle", "第"+i+"行");            

map.put("ItemText", "这是第"+i+"行");            

listItem.add(map);          

}      

SimpleAdapter mSimpleAdapter =newSimpleAdapter(this,listItem,R.layout.item,

newString[] {"ItemImage","ItemTitle", "ItemText"},  

newint[] {R.id.ItemImage,R.id.ItemTitle,R.id.ItemText});

lview.setAdapter(mSimpleAdapter);//为ListView绑定适配器

listItem为要绑定到ListView中的数据,mSimpleAdapter为适配器。定义适配器的构造方法一共有5个参数。参数1:当前上下文;参数2:要绑定的数据;参数3:为listview定义的每一项的布局文件;参数4:要绑定的数据的键值;参数5:要绑定的控件的id;其中参数4和参数5一般情况下是对应的,例如该例中,数组listItem中的项ItemImage
要绑定到对应id为R.id.ItemImage的控件中。

到这里ArrayAdapter和SimpleAdapter的简单内容完毕,因为篇幅太长,下篇为BaseAdapter与ListView的基本知识与优化。

你可能感兴趣的:(Android之ListView(一) -- 基本(ArrayAdapter、SimpleAdapter))