一、Adapter的介绍

An Adapter object acts as a bridge between an AdapterView and the underlying data for that view. The Adapter provides access to the data items. The Adapter is also responsible for making aView for each item in the data set.

一个Adapter是AdapterView视图与数据之间的桥梁,Adapter提供对数据的访问,也负责为每一项数据产生一个对应的View。其作用如下图所示:


二、Adapter的继承关系

有两个adapter的体系,如下:

1、



2、



三、Adapter中的方法

在实际应用中,adapter的继承体系应用的更为广泛,所以,要对Adapter的方法有所了解

[java] view plain copy
  1. publicinterfaceAdapter{
  2. //为了避免产生大量的View浪费内存,在Android中,AdapterView中的View是可回收的使用的。比如你有100项数据要显示,而你的屏幕一次只能显示10条数据,则
  3. //只产生10个View,当往下拖动要显示第11个View时,会把第1个View的引用传递过去,更新里面的数据再显示,也就是说View可重用,只是更新视图中的数据用于显示新
  4. //的一项,如果一个视图的视图类型是IGNORE_ITEM_VIEW_TYPE的话,则此视图不会被重用
  5. staticfinalintIGNORE_ITEM_VIEW_TYPE=AdapterView.ITEM_VIEW_TYPE_IGNORE;
  6. staticfinalintNO_SELECTION=Integer.MIN_VALUE;
  7. //注册一个Observer,当Adapter所表示的数据改变时会通知它,DataSetObserver是一个抽象类,定义了两个方法:onChanged与onInvalidated
  8. voidregisterDataSetObserver(DataSetObserverobserver);
  9. //取消注册一个Observer
  10. voidunregisterDataSetObserver(DataSetObserverobserver);
  11. //所表示的数据的项数
  12. intgetCount();
  13. //返回指定位置的数据项
  14. ObjectgetItem(intposition);
  15. //返回指定位置的数据项的ID
  16. longgetItemId(intposition);
  17. //表示所有数据项的ID是否是稳定的,在BaseAdapter中默认返回了false,假设是不稳定的,在CursorAdapter中返回了true,Cursor中的_ID是不变的
  18. booleanhasStableIds();
  19. //为每一个数据项产生相应的视图
  20. ViewgetView(intposition,ViewconvertView,ViewGroupparent);
  21. //获得相应位置的这图类型
  22. intgetItemViewType(intposition);
  23. //getView可以返回的View的类型数量。(在HeaderViewListAdapter中可以包含Header和Footer,getView可以返回Header、Footer及Adapter
  24. //中的视图,但其getViewTypeCount的实现只是调用了内部Adapter的的getViewTypeCount,忽略了Header、Footer中的View
  25. //Type,不懂。
  26. intgetViewTypeCount();
  27. //是否为空
  28. booleanisEmpty();
  29. }

更多相关文章

  1. android 数据库同步
  2. AllowBackup/FullBackupContent Problems
  3. android Comparator做排序
  4. Android(安卓)FTP Server
  5. ch020 Android(安卓)SQLite3(第一部分)
  6. android DatePicker
  7. android 操作sqlite数据库
  8. webservice1(队列上传 呼叫)
  9. android 操作sqlite数据库

随机推荐

  1. android studio 适配android7.0 android
  2. Android年终盘点:阿里程序员必备技能知识
  3. Java中输入流的read()为阻塞式方法的相关
  4. Android开发之模板模式初探
  5. android emulator 运行缓慢的解决办法
  6. Android以当前Activity为基准进行截屏
  7. Android(安卓)应用的动画实践--View Anim
  8. 小米平板:天使与魔鬼的共同化身
  9. Android开发之如何使用通知提醒功能(Notif
  10. 那些Android上的性能优化