安卓平台下通用适配器类设计和实现.docVIP

安卓平台下通用适配器类设计和实现.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
安卓平台下通用适配器类设计和实现

安卓平台下通用适配器类设计和实现   摘 要:介绍了安卓平台下Adapter(适配器)组件的机制和一般使用方法,详述了如何通过面向对象的编程方法实现一种可复用的、通用的Adapter类。该Adapter类的实现过程主要运用了泛型、抽象类、公用代码的抽取和封装等多种技术,使用SparseArray类实现了列表视图组件的存储,重构了一个通用的可扩展的ViewHolder类,在Adapter类的getView方法中提供了一个用于数据填充的可配置convert的抽象方法。使用Adapter类明显提高了程序开发效率,增强了系统的可扩展性和可维护性。   关键词:安卓;适配器;SparseArray类;ViewHolder类   DOIDOI:10.11907/rjdk.1511223   中图分类号:TP319   文献标识码:A 文章编号文章编号:1672-7800(2015)012-0109-05   0 引言   Android系统是完全遵循MVC模式设计的框架,其中Activity是Controller,Layout是View,因为Layout五花八门,很多数据不能直接绑定上去,所以Android引入了Adapter(适配器)机制作为复杂数据展示的转换载体。   Adapter可以认为是View与Data之间的桥梁,是连接后端数据和前端显示的适配器接口,用来处理数据并将数据绑定到View上,在使用常见的View(如ListView、GridView)编程时都需要用到Adapter。图1较为直观地表达了Data、Adapter、View三者的关系:数据源首先封装到Adapter中,再由Adapter将数据映射到ListView上显示,当用户对ListView组件操作时会通过Adapter更新数据并返回显示结果。   Android提供多种适配器类,比如BaseAdapter、ArrayAdapter、SimpleAdapter、CursorAdapter等,开发时可以根据不同数据源选用适配器类,也可以通过继承的方式自定义适配器类。其中,BaseAdapter是一个抽象类,具有较高的灵活性,一般在实际项目开发中用得比较多,因此,本文围绕BaseAdapter进行阐述。   BaseAdapter使用步骤:①在需要显示View的Activity中自定义一个内部类MyAdapter,继承于BaseAdapter,实现其中的抽象方法,一般还需要重写构造方法以方便传递数据;②在Activity中实例化MyAdapter对象并传递数据,数据可以是List集合或数组;③使用View的   图1 适配器接口(Adapter)工作机制   setAdatper(adapter)方法关联MyAdapter对象,绑定数据;④在用户添加或修改数据时使用notifydatasetchanged方法更新数据。   以上使用BaseAdapter的编程方式存在一定弊端,即界面每次显示一个不同的View都要定义一个新的MyAdapter类,代码无法复用。这种编程方式在开发简单应用时问题不大,但在开发较复杂的应用时会造成大量重复性代码,使系统的可扩展性和可维护性大大降低,严重影响开发效率。本文通过一个典型案例,介绍如何设计并实现一种通用的Adapter类,以解决上述问题。   1 Adapter一般使用方法   下面是一个手机通讯录案例,相对于实际项目在功能上作了很大程度的简化,仅由一个界面构成,界面上只显示联系人的姓名文本和头像图片,通讯录的内容为100条简单数据,头像图片都是同一张本地图片,关键代码如下:   (1)创建布局文件。通讯录布局文件:activity_main.xml,包含一个ListView组件,id属性为listview。   通讯录列表子项布局文件:listview_item.xml,包含一个ImageView组件,id属性为face,一个TextView组件,id属性为name。   (2)创建联系人实体类。AddressBook.class   public class AddressBook {   private UUID id;// 联系人编号   private String name;// 联系人姓名   private String phoneNumber;// 电话号码   private String faceName;// 头像名字   …   }   (3)创建数据提供者类。DataProvider.class   public class DataProvider {   public static final int count=100;//联系人数目  

文档评论(0)

189****7685 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档