前言

  本章内容是 android.widget.BaseAdapter,版本为Android 2.2 r1,翻译来自"德罗德",欢迎大家访问他的博客:http://sparkrico.javaeye.com,再次感谢"德罗德" !期待你一起参与Android中文API的翻译,联系我over140@gmail.com。

声明

  欢迎转载,但请保留文章原始出处:)

    农民伯伯:http://over140.blog.51cto.com/

    Android中文翻译组:http://code.taobao.org/project/view/404/

正文

  一、结构

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为指定项目创建的视图的类型。

参数

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

返回值

一个整形的视图类型的描述。如果一个视图通过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)

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

参数

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

public void unregisterDataSetObserver (DataSetObserver observer)

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

参数

observer移除注册的对象

  四、补充

  文章链接

Android BaseAdapter 例子

BaseAdapterBug

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

结束

   "德罗德"为当前翻译组较为活跃的"议员",感谢他为大家带来精彩的译文 :)

更多相关文章

  1. Android 数据存储与IO (一)
  2. android的数据存储和访问 附源码
  3. 关于ADT(eclipse android)项目迁移到Android studio工具教程(上)
  4. 关于Android中SharedPreferences提交数据效率的调研
  5. Android SQLite数据库应用技巧分享
  6. 使用浏览器查看Android SQLite数据库-Android Debug Database用
  7. Android sql数据库的Android包里面的函数介绍

随机推荐

  1. 初探Android
  2. 【Android(安卓)系统开发】 编译 Android
  3. android开发初学建议
  4. Android(安卓)开发小技巧
  5. Android高斯模糊、高斯平滑(Gaussian Blur
  6. 如何发布你的Android应用程序
  7. Android如何让TextView子元素随着父元素
  8. android studio导入quick cocos2dxV3.3的
  9. Android(安卓)核心分析 之八------Androi
  10. Android(安卓)学习笔记(十六):Widget-进度条