ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:155.33KB ,
资源ID:10982326      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10982326.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Android之自定义Adapter的ListView.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Android之自定义Adapter的ListView.docx

1、Android之自定义Adapter的ListViewAndroid之自定义Adapter的ListViewAndroid自定义Adapter的ListView的思路及代码,需要的朋友可以参考一下在开发中,我们经常使用到ListView这个控件。Android的API也提供了许多创建ListView适配器的快捷方式。例如ArrayAdapter、SimpleAdapter和SimpleCursorAdapter等。但你是否发现,如果采用这些系统自带的适配器,对于事件的响应只能局限在一个行单位。假设一行里面有一个按钮和一个图片控件,它们之间的响应操作是不一样的。若采用系统自带的适配器,就不能精确

2、到每个控件的响应事件。这时,我们一般采取自定义适配器来实现这个比较精确地请求。ListView的创建,一般要具备两大元素: 1)数据集,即要映射的字符串、图片信息之类。 2)适配器,实现把要映射的字符串、图片信息映射成视图(如Textview、Image等组件),再添加到ListView中。实现细节: 1、创建数据集,一般定义如下复制代码 代码如下:private ListMap listItems;元素添加方式:复制代码 代码如下: Map map = new HashMap(); map.put(image, imgeIDsi); /图片资源 map.put(title, 物品名称:);

3、/物品标题 map.put(info, goodsNamesi); /物品名称 map.put(detail, goodsDetailsi); /物品详情 listItems.add(map); /添加一项 2、创建适配器复制代码 代码如下: public class ListViewAdapter extends BaseAdapter. /自定义的适配器一般继承BaseAdapter类 listViewAdapter = new ListViewAdapter(this, listItems);3、给ListView设置适配器复制代码 代码如下: listView.setAdapter(l

4、istViewAdapter);4、这里还有个关键点,如何把list_item.xml布局作为一个视图,添加到listView中:复制代码 代码如下: LayoutInflater listContainer; /视图容器工厂 listContainer = LayoutInflater.from(context); /创建视图容器工厂并设置上下文 convertView = listContainer.inflate(R.layout.list_item, null); /创建list_item.xml布局文件的视图实例视图如下:1)布局文件main.xml 复制代码 代码如下: 列表项布局

5、文件list_item.xml 复制代码 代码如下: 2)代码,主代码: 复制代码 代码如下:package com.myAndroid.test; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import Android.app.Activity; import Android.app.AlertDialog; import Android.content.DialogInterface; import Android.os.Bundle;

6、 import Android.view.View; import Android.view.View.OnClickListener; import Android.widget.ArrayAdapter; import Android.widget.ImageButton; import Android.widget.ListView; publicclass MyListView extends Activity private ListView listView; private ImageButton imgbt_sum; private ListViewAdapter listVi

7、ewAdapter; private ListMap listItems; private Integer imgeIDs = R.drawable.cake, R.drawable.gift, R.drawable.letter, R.drawable.love, R.drawable.mouse, R.drawable.music; private String goodsNames = 蛋糕, 礼物, 邮票, 爱心, 鼠标, 音乐CD; private String goodsDetails = 蛋糕:好好吃。, 礼物:礼轻情重。, 邮票:环游世界。, 爱心:世界都有爱。, 鼠标:反应敏

8、捷。, 音乐CD:酷我音乐。; /* Called when the activity is first created. */ Override publicvoid onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.main); listView = (ListView)findViewById(R.id.list_goods); imgbt_sum = (ImageButton) findViewById(R.id.imgbt_sum); imgb

9、t_sum.setOnClickListener(new ClickEvent(); listItems = getListItems(); listViewAdapter = new ListViewAdapter(this, listItems); /创建适配器 listView.setAdapter(listViewAdapter); /* * 初始化商品信息 */ private ListMap getListItems() ListMap listItems = new ArrayListMap(); for(int i = 0; i goodsNames.length; i+) M

10、ap map = new HashMap(); map.put(image, imgeIDsi); /图片资源 map.put(title, 物品名称:); /物品标题 map.put(info, goodsNamesi); /物品名称 map.put(detail, goodsDetailsi); /物品详情 listItems.add(map); return listItems; class ClickEvent implements OnClickListener Override publicvoid onClick(View v) / TODO Auto-generated met

11、hod stub String goodsList = ; for(int i = 0; i listItems.size(); i+) goodsList += listViewAdapter.hasChecked(i)? goodsNamesi + : ; new AlertDialog.Builder(MyListView.this) .setTitle(购物清单:) .setMessage(你好,你选择了如下商品:n + goodsList) .setPositiveButton(确定, null) .show(); 适配器代码:复制代码 代码如下:package com.myAndr

12、oid.test; import java.util.List; import java.util.Map; import Android.app.AlertDialog; import Android.content.Context; import Android.util.Log; import Android.view.LayoutInflater; import Android.view.View; import Android.view.ViewGroup; import Android.widget.BaseAdapter; import Android.widget.Button

13、; import Android.widget.CheckBox; import Android.widget.CompoundButton; import Android.widget.ImageView; import Android.widget.ListView; import Android.widget.TextView; publicclass ListViewAdapter extends BaseAdapter private Context context; /运行上下文 private ListMap listItems; /商品信息集合 private LayoutIn

14、flater listContainer; /视图容器 privateboolean hasChecked; /记录商品选中状态 publicfinalclass ListItemView /自定义控件集合 public ImageView image; public TextView title; public TextView info; public CheckBox check; public Button detail; public ListViewAdapter(Context context, ListMap listItems) this.context = context;

15、 listContainer = LayoutInflater.from(context); /创建视图容器并设置上下文 this.listItems = listItems; hasChecked = newbooleangetCount(); publicint getCount() / TODO Auto-generated method stub return listItems.size(); public Object getItem(int arg0) / TODO Auto-generated method stub returnnull; publiclong getItem

16、Id(int arg0) / TODO Auto-generated method stub return0; /* * 记录勾选了哪个物品 * param checkedID 选中的物品序号 */ privatevoid checkedChange(int checkedID) hasCheckedcheckedID = !hasCheckedcheckedID; /* * 判断物品是否选择 * param checkedID 物品序号 * return 返回是否选中状态 */ publicboolean hasChecked(int checkedID) return hasCheckedcheckedID; /* * 显示物品详情 * param clickID */ privatevoid showDetailInfo(int clickID) new AlertDialog.Builder(context) .setTitle(物品详情: + listItems.get(clickID).get(info) .setMessage(listItems.get(clickID).get(detail).t

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1