欢迎来到天天文库
浏览记录
ID:40530275
大小:117.00 KB
页数:7页
时间:2019-08-04
《Android开发——说说Adapter那点事》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Adapter在Android中占据一个重要的角色,它是数据和UI(View)之间一个重要的纽带。在常见的View(ListView,GridView)等地方都需要用到Adapter。如图1直观的表达了Data、Adapter、View三者的关系。图1Adapter、数据、UI三者关系(PS:此图来自GoogleI/O)一、Android中Adapter 图2:Android中Adapter类型层级图由图2我们可以看到在Android中与Adapter有关的所有接口、类的完整层级图。在我们使用过程中可以根据自己的需求实现接口或者继承类进行一定的扩展。比较常用
2、的有BaseAdapter,ArrayAdapter,SimpleCursorAdapter等。·BaseAdapter是一个抽象类,继承它需要实现较多的方法,所以也就具有较高的灵活性;·ArrayAdapter支持泛型操作,通常需要实现getView方法,特殊情况下(结合数据rowid),为了让ui事件相应处理方便点最好重写getItemId;·SimpleCursorAdapter可以适用于简单的纯文字型ListView,它需要Cursor的字段和UI的id对应起来。如需要实现更复杂的UI也可以重写其他方法。二、一个继承BaseAdapter的类的代码段
3、1:/**2:*歌曲列表适配器3:*4:*@version2010-11-24下午05:13:335:*@authorHal6:*/7:publicclassAudioListAdapterextendsBaseAdapter{8: 9:privateContextmContext;10: 11://歌曲集合12:privateArrayListmAudios;13: 14:publicAudioListAdapter(ContextmContext,ArrayListmAudios){15:this.mContext=mCont
4、ext;16:this.mAudios=mAudios;17:}18: 19:@Override20:publicintgetCount(){21:returnmAudios!=null?mAudios.size():0;22:}23: 24:@Override25:publicObjectgetItem(intposition){26:if((mAudios!=null&&mAudios.size()>0)&&(position>=0&&position5、}29:returnnull;30:}31: 32:/**33:*如果集合中的对象数据来自数据库,建议此方法返回该对象在数据库中的ID34:*/35:@Override36:publiclonggetItemId(intposition){37:if((mAudios!=null&&mAudios.size()>0)&&(position>=0&&position6、44:publicViewgetView(intposition,ViewconvertView,ViewGroupparent){45://TODO返回自定的View
5、}29:returnnull;30:}31: 32:/**33:*如果集合中的对象数据来自数据库,建议此方法返回该对象在数据库中的ID34:*/35:@Override36:publiclonggetItemId(intposition){37:if((mAudios!=null&&mAudios.size()>0)&&(position>=0&&position6、44:publicViewgetView(intposition,ViewconvertView,ViewGroupparent){45://TODO返回自定的View
6、44:publicViewgetView(intposition,ViewconvertView,ViewGroupparent){45://TODO返回自定的View
此文档下载收益归作者所有