Android学习四、Android中的Adapter

一、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 a View for each item in the data set.

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


二、Adapter的继承关系

有两个adapter的体系,如下:

1、



2、



三、Adapter中的方法

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

  1. public interface Adapter {  
  2.     // 为了避免产生大量的View浪费内存,在Android中,AdapterView中的View是可回收的使用的。比如你有100项数据要显示,而你的屏幕一次只能显示10条数据,则  
  3.     // 只产生10个View,当往下拖动要显示第11个View时,会把第1个View的引用传递过去,更新里面的数据再显示,也就是说View可重用,只是更新视图中的数据用于显示新  
  4.     // 的一项,如果一个视图的视图类型是IGNORE_ITEM_VIEW_TYPE的话,则此视图不会被重用  
  5.     static final int IGNORE_ITEM_VIEW_TYPE = AdapterView.ITEM_VIEW_TYPE_IGNORE;  
  6.   
  7.     static final int NO_SELECTION = Integer.MIN_VALUE;  
  8.   
  9.     // 注册一个Observer,当Adapter所表示的数据改变时会通知它,DataSetObserver是一个抽象类,定义了两个方法:onChanged与onInvalidated  
  10.     void registerDataSetObserver(DataSetObserver observer);  
  11.   
  12.     // 取消注册一个Observer  
  13.     void unregisterDataSetObserver(DataSetObserver observer);  
  14.   
  15.     // 所表示的数据的项数  
  16.     int getCount();  
  17.   
  18.     // 返回指定位置的数据项  
  19.     Object getItem(int position);  
  20.   
  21.     // 返回指定位置的数据项的ID  
  22.     long getItemId(int position);  
  23.   
  24.     // 表示所有数据项的ID是否是稳定的,在BaseAdapter中默认返回了false,假设是不稳定的,在CursorAdapter中返回了true,Cursor中的_ID是不变的  
  25.     boolean hasStableIds();  
  26.   
  27.     // 为每一个数据项产生相应的视图  
  28.     View getView(int position, View convertView, ViewGroup parent);  
  29.   
  30.     // 获得相应位置的这图类型  
  31.     int getItemViewType(int position);  
  32.   
  33.     // getView可以返回的View的类型数量。(在HeaderViewListAdapter中可以包含Header和Footer,getView可以返回Header、Footer及Adapter  
  34.     // 中的视图,但其getViewTypeCount的实现只是调用了内部Adapter的的getViewTypeCount,忽略了Header、Footer中的View  
  35.     // Type,不懂。  
  36.     int getViewTypeCount();  
  37.   
  38.     //是否为空  
  39.     boolean isEmpty();  
  40. }  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值