Android之自定义Adapter的ListView.docx
《Android之自定义Adapter的ListView.docx》由会员分享,可在线阅读,更多相关《Android之自定义Adapter的ListView.docx(15页珍藏版)》请在冰豆网上搜索。
Android之自定义Adapter的ListView
Android之自定义Adapter的ListView
Android自定义Adapter的ListView的思路及代码,需要的朋友可以参考一下
在开发中,我们经常使用到ListView这个控件。
Android的API也提供了许多创建ListView适配器的快捷方式。
例如ArrayAdapter、SimpleAdapter和SimpleCursorAdapter等。
但你是否发现,如果采用这些系统自带的适配器,对于事件的响应只能局限在一个行单位。
假设一行里面有一个按钮和一个图片控件,它们之间的响应操作是不一样的。
若采用系统自带的适配器,就不能精确到每个控件的响应事件。
这时,我们一般采取自定义适配器来实现这个比较精确地请求。
ListView的创建,一般要具备两大元素:
1)数据集,即要映射的字符串、图片信息之类。
2)适配器,实现把要映射的字符串、图片信息映射成视图(如Textview、Image等组件),再添加到ListView中。
实现细节:
1、创建数据集,一般定义如下
复制代码代码如下:
privateList
元素添加方式:
复制代码代码如下:
Mapmap=newHashMap();
map.put("image",imgeIDs[i]); //图片资源
map.put("title","物品名称:
"); //物品标题
map.put("info",goodsNames[i]); //物品名称
map.put("detail",goodsDetails[i]); //物品详情
listItems.add(map); //添加一项
2、创建适配器
复制代码代码如下:
publicclassListViewAdapterextendsBaseAdapter{........} //自定义的适配器一般继承BaseAdapter类
listViewAdapter=newListViewAdapter(this,listItems);
3、给ListView设置适配器
复制代码代码如下:
listView.setAdapter(listViewAdapter);
4、这里还有个关键点,如何把list_item.xml布局作为一个视图,添加到listView中:
复制代码代码如下:
LayoutInflaterlistContainer; //视图容器工厂
listContainer=LayoutInflater.from(context);//创建视图容器工厂并设置上下文
convertView=listContainer.inflate(R.layout.list_item,null); //创建list_item.xml布局文件的视图
实例视图如下:
1)布局文件main.xml
复制代码代码如下:
xmlversion="1.0"encoding="utf-8"?
>
Android="
Android:
orientation="vertical"
Android:
layout_width="fill_parent"
Android:
layout_height="fill_parent">
--结算-->
gravity="center_horizontal"
Android:
orientation="horizontal"android:
layout_width="fill_parent"
Android:
layout_height="wrap_content">
text="结算:
"
Android:
layout_width="wrap_content"
Android:
layout_height="wrap_content"
Android:
textColor="#FFFFFFFF"
Android:
textSize="20px"/>
id="@+id/imgbt_sum"
Android:
layout_width="40px"
Android:
layout_height="40px"
Android:
background="@drawable/shopping"/>
text="商品列表:
"
Android:
layout_width="wrap_content"
Android:
layout_height="wrap_content"
Android:
textColor="#FFFFFFFF"/>
--商品列表-->
id="@+id/list_goods"
Android:
layout_width="fill_parent"
Android:
layout_height="wrap_content"/>
列表项布局文件list_item.xml
复制代码代码如下:
xmlversion="1.0"encoding="utf-8"?
>
Android="
Android:
orientation="horizontal"android:
layout_width="fill_parent"
Android:
layout_height="fill_parent">
--商品图片-->
id="@+id/imageItem"
Android:
layout_width="wrap_content"
Android:
layout_height="wrap_content"
Android:
layout_margin="5px"/>
--商品信息-->
orientation="vertical"
Android:
layout_width="wrap_content"
Android:
layout_height="wrap_content">
id="@+id/titleItem"
Android:
layout_width="wrap_content"
Android:
layout_height="wrap_content"
Android:
textColor="#FFFFFFFF"
Android:
textSize="13px"/>
id="@+id/infoItem"
Android:
layout_width="wrap_content"
Android:
layout_height="wrap_content"
Android:
textColor="#FFFFFFFF"
Android:
textSize="22px"/>
--购买和商品详情-->
gravity="right"
Android:
orientation="horizontal"android:
layout_width="fill_parent"
Android:
layout_height="wrap_content">
id="@+id/checkItem"
Android:
layout_width="wrap_content"
Android:
layout_height="wrap_content"
Android:
layout_margin="5px"/>