BaseAdapter

译者署名: 德罗德

译者链接:http://sparkrico.javaeye.com

翻译时间:2010-11-03

版本:Android 2.2 r1

 

结构

继承关系

public abstract class BaseAdapter

extends Object implements ListAdapter SpinnerAdapter

        

java.lang.Object

android.widget.BaseAdapter

 

子类及间接子类

直接子类

         ArrayAdapter<T>, CursorAdapter, SimpleAdapter

间接子类

ResourceCursorAdapter, SimpleCursorAdapter

类概述

用于ListView(实现指定的ListAdapter接口)Spinner(实现指定的SpinnerAdapter接口)的共同实现一个公共基类适配器。

 

公共方法

public abstract boolean areAllItemsEnabled ()

ListAdapter中所有的项目都是可用的?如果是,则代表所有的项目都是可选择,可用鼠标点击的。

返回值

如果所有项目是可用的返回真

 

public abstract View getDropDownView (int position, View convertView, ViewGroup parent)

获得一个在指定位置上显示下拉弹出数据的视图。

参数

       position  想得到项目视图的索引

       convertView   如果可能旧有的视图重新使用。注解:在使用之前应该检查这个视图不是空的并且类型合适。如果转换视图显示正确的数据是不可能的,这个方法能够创建一个新的视图

parent     视图最终将依附的父对象。

返回值

一个对应指定位置的数据的视图。

 

public int getItemViewType (int position)

获取通过getView为指定项目创建的视图的类型。

       参数

              position  adapter数据里我们想知道视图类型的项目的位置

       返回值

              一个整形的视图类型的描述。如果一个视图通过getView(int, View, ViewGroup)方法转换成另一个视图,则两个视图将共享同一类型。注意:整形必须在0getViewTypeCount()– 1之间。IGNORE_ITEM_VIEW_TYPE也可以返回。

 

public int getViewTypeCount ()

返回通过getView(int, View, ViewGroup))创建的视图的类型数量。每一个类型表示一组通过getView(int, View, ViewGroup)方法转换过的视图。如果adapter针对所有项目返回相同的视图类型,这个方法返回1

这个方法仅仅当adapter设置在AdapterView时调用。

       返回值

通过这个adapter创建的视图类型的数量

 

public boolean hasStableIds ()

表明是否项目ID时对基础数据的变化保持稳定的。

       返回值

如果相同的ID指相同的对象,返回真

 

public boolean isEmpty ()

adapter数据项是否等于零

 

public boolean isEnabled (int position)

如果指定的位置不是一个隔离项目(隔离项目是一个不可选择,不可用鼠标点击的项目)则返回真。如果位置是无效的,其结果将是不确定的。在这种情况下一个ArrayIndexOutOfBoundsException(越界)异常将抛出

       参数

              position  项目的索引

       返回值

如果这个项目不是一个隔离项目则返回真。

 

public void notifyDataSetChanged ()

通知附属的视图基础数据已经改变,视图应该自动刷新。

 

public void notifyDataSetInvalidated ()

监控数据的observer不再有效

 

public void registerDataSetObserver (DataSetObserver observer)

Register an observer that is called when changes happen to the data used by this adapter.

注册一个用于adapterobserver(观察者:监控数据发生改变时被调用)

       参数

              observer 当数据发生改变时得到通知的对象

 

public void unregisterDataSetObserver (DataSetObserver observer)

移除先前通过registerDataSetObserver(DataSetObserver)方法注册过的observer(观察者:监控数据发生改变的类)

参数

       observer  移除注册的对象

 

补充

文章链接

Android BaseAdapter 例子

BaseAdapterBug

Android中万能的BaseAdapter(Spinner,ListView,GridView)的使用!