Android之自定义Adapter的ListView===

Android之自定义Adapter的ListView===
Android之自定义Adapter的ListView===

Android之自定义Adapter的ListView

Android自定义Adapter的ListView的思路及代码,需要的朋友可以参考一下

在开发中,我们经常使用到ListView这个控件。Android的API也提供了许多创建ListView适配器的快捷方式。例如ArrayAdapter、SimpleAdapter和SimpleCursorAdapter等。但你是否发现,如果采用这些系统自带的适配器,对于事件的响应只能局限在一个行单位。假设一行里面有一个按钮和一个图片控件,它们之间的响应操作是不一样的。若采用系统自带的适配器,就不能精确到每个控件的响应事件。这时,我们一般采取自定义适配器来实现这个比较精确地请求。

ListView的创建,一般要具备两大元素:

1)数据集,即要映射的字符串、图片信息之类。

2)适配器,实现把要映射的字符串、图片信息映射成视图(如Textview、Image等组件),再添加到ListView中。

实现细节:

1、创建数据集,一般定义如下

复制代码代码如下:

private List> listItems;

元素添加方式:

复制代码代码如下:

Map map = new HashMap();

map.put("image", imgeIDs[i]); //图片资源

map.put("title", "物品名称:"); //物品标题

map.put("info", goodsNames[i]); //物品名称

map.put("detail", goodsDetails[i]); //物品详情

listItems.add(map); //添加一项

2、创建适配器

复制代码代码如下:

public class ListViewAdapter extends BaseAdapter{........} //自定义的适配器一般继承BaseAdapter类

listViewAdapter = new ListViewAdapter(this, listItems);

3、给ListView设置适配器

复制代码代码如下:

listView.setAdapter(listViewAdapter);

4、这里还有个关键点,如何把list_item.xml布局作为一个视图,添加到listView中:

复制代码代码如下:

LayoutInflater listContainer; //视图容器工厂

listContainer = LayoutInflater.from(context); //创建视图容器工厂并设置上下文

convertView = listContainer.inflate(https://www.360docs.net/doc/db5326140.html,yout.list_item, null); //创建list_item.xml布局文件的视图实例视图如下:

1)布局文件main.xml

复制代码代码如下:

Android:orientation="vertical"

Android:layout_width="fill_parent"

Android:layout_height="fill_parent">

Android:orientation="horizontal"android:layout_width="fill_parent"

Android:layout_height="wrap_content">

Android:layout_width="wrap_content"

Android:layout_height="wrap_content"

Android:textColor="#FFFFFFFF"

Android:textSize="20px"/>

Android:layout_width="40px"

Android:layout_height="40px"

Android:background = "@drawable/shopping"/>

Android:layout_width="wrap_content"

Android:layout_height="wrap_content"

Android:textColor="#FFFFFFFF"/>

Android:layout_width="fill_parent"

Android:layout_height="wrap_content"/>

列表项布局文件list_item.xml

复制代码代码如下:

Android:orientation="horizontal"android:layout_width="fill_parent"

Android:layout_height="fill_parent">

Android:layout_width="wrap_content"

Android:layout_height="wrap_content"

Android:layout_margin="5px"/>

Android:layout_width="wrap_content"

Android:layout_height="wrap_content">

Android:layout_width="wrap_content"

Android:layout_height="wrap_content"

Android:textSize="13px"/>

Android:layout_width="wrap_content"

Android:layout_height="wrap_content"

Android:textColor="#FFFFFFFF"

Android:textSize="22px"/>

Android:orientation="horizontal"android:layout_width="fill_parent"

Android:layout_height="wrap_content">

Android:layout_width="wrap_content"

Android:layout_height="wrap_content"

Android:layout_margin="5px"/>

相关文档
最新文档