哨兵

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  1. Adapter接口派生了ListAdapter和SpinnerAdapter接口,ListAdapter为AbsListView提供列表项,SpinnerAdapter为AbsSpinner提供列表项,Adapter常用的实现类如下:
    • ArrayAdapter:将数组活列表中的多个值包装成列表项,每个列表项只能是TextView或者其子类
      ArrayAdapter
    • SimpleAdapter:可将list集合中的多个对象包装成列表项,每个列表项对应一个Layout
      SimpleAdapter
    • SimpleCursorAdapter:用于包装Cursor提供的数据,其构造函数为
      public SimpleAdapter(Context context,
                   List<? extends Map<String,?>> data,
                   int resource,
                   String[] from,
                   int[] to)
      SimpleCursorAdapter

    • BaseAdapter:常用来扩展,可以实现对列表项最大限度的定制.自定义BaseAdapter时要重写它的多个方法,比较重要的有getCount,getView方法.ListView设置了BaseAdapter,系统开始绘制ListView的时候,首先调用getCount方法得到ListView的item数目,然后调用getView逐条绘制item
      • View getView(int position,View convertView,ViewGroup parent):显示data set position位置的数据的view.其中convertView参数需要注意。它的工作原理是:以ListView为例,当初始显示时,每次显示一个item都调用一次getView方法,每次调用convertView都为空,当显示完后,如果屏幕移动了并且导致有些Item移出屏幕,此时如果还有新的item需要产生,调用getView时convertView参数就不为空,而是移出屏幕的item的view,所以为了提高效率可以重用之前的view,代码如下
        BaseAdapter getView
    • 继承关系如图所示:
      clipboard
posted on 2014-09-12 21:18  哨兵  阅读(250)  评论(0编辑  收藏  举报