您的位置:首页 > 移动开发 > Android开发

Android 中文 API (102)—— CursorAdapter

2011-02-24 09:45 429 查看
前言

  本章内容是android.widget.CursorAdapter,版本为Android2.3r1,翻译来自"深夜未眠",欢迎访问它的博客:"http://chirs1012f.javaeye.com/",再次感谢"深夜未眠"!期待你一起参与AndroidAPI的翻译,联系我over140@gmail.com。

声明

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

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

    Android中文翻译组:http://goo.gl/6vJQl

正文

  一、结构

publicabstractclassCusrorAdapterextendsBaseAdpaterimplementsFilterable

java.lang.Object
android.widget.BaseAdapter
android.widget.CursorAdapter

直接子类
ResourceCursorAdapter
间接子类
SimpleCursorAdapter

  二、概述

    通过该类可以用
Cursor
的方式访问数据库,并将查询出来的数据展示到列表视图(
ListView
)部件上。其中游标携带的结果集中必须有列名为“_id”的列,否则这个类无法工作。

  三、构造函数

    publicCusorAdapter(Contextcontext,Cursorc)

构造函数。每当数据库的数据发生改变时,适配器将调用requery()重新查询以显示最新的数据。

  参数
  context应用程序上下文。
  c用来获取数据的游标(Coursor)

    publicCusorAdapter(Contextcontext,Cursorc,booleanautoRequery)

  构造函数。每当数据库的数据发生改变时,适配器将调用requery()重新查询以显示最新的数据。
  参数
  context应用程序上下文。
  c用来获取数据的Coursor
autoRequry设置为true时,每当数据库的数据发生改变时,适配器将调用requery()重新查询以显示最新的数据。

  四、公共方法

  publicabstractvoidbindView(Viewview,Contextcontext,Cursorcursor)
  重用一个已有的view,使其显示当前cursor所指向的数据。
  参数
  view已存在的视图,返回之前newView方法创建的视图。

  context应用程序上下文

  cursor用于获取数据的Coursor。Coursor已经移到正确的位置。

  publicvoidchangeCursor(Cursorcursor)
更改底层的游标为新传入的游标。如果游标已经存在则先关闭这个已存在的游标。

  参数
  cursor新Cursor。

  publicCharSequenceconvertToString(Cursorcursor)
将cursor转换成CharSequence。子类应该重写这个方法并转换它们的结果。这个方法的默认实现是:当cursor为空时返回一个空串,否则直接返回调用cursor的toString()方法。
  参数
  cursor将cursor转换成CharSequence对象。

返回值
  返回表示CharSequence的值。

  publicintgetCount()
(译者注:获取适配器中数据的总行数。)

  参见

getCount()


  publicCursorgetCursor()
返回当前适配器绑定的Cursor对象。

  返回值
Cursor对象。

  publicViewgetDropDownView(intposition,ViewconvertView,ViewGroupparent)
  获取下拉列表选项指定位置的视图对象
  参数
position  视图(View)对象的行索引。
convertView重用已有的视图(View)对象。备注:在使用前你应该检查一下这个视图对象是否非空并且这个对象的类型是否合适。由此引伸出,如果该对象不能被转换并显示正确的数据,这个方法内部就会重新创建一个合适的视图(View)对象。
parent  不管是转换后的还是重新创建的视图(View)对象,始终都会依附于parent对象上。
  返回值
  返回视图(View)对象,该对象显示数据集指定位置上的数据。

  publicFiltergetFilter()
  返回一个可以通过一种过滤模式来约束数据的过滤器。
  这个方法通常在Adapter类实现。
  返回值
  一个用于约束数据的过滤器

  publicFilterQueryProvidergetFilterQueryProvider()
  返回一个提供过滤的查询过滤器。若过滤器为null,则不再过滤。
  返回值
  返回当前过滤器对象,如果不存在返回null。

参见

setFilterQueryProvider(android.widget.FilterQueryProvider)

runQueryOnBackgroundThread(CharSequence)


  publicObjectgetItem(intposition)
  (译者注:获取数据集中指定位置上的数据项目)
参见

getItem(int)


  publiclonggetItemId(intposition)
(译者注:获取数据集中的指定位置上的行id。)

  参见

getItemId(int)


  publicViewgetView(intposition,ViewconvertView,ViewGroupparent)
  (译者注:获取一个显示数据集中指定位置数据段视图。可以手动创建视图,或者从XML设计文件填充。当视图从XML设计文件填充时,父视图(如GridView,ListView等)将接受默认的设计参数,除非使用inflate(int,android.view.ViewGroup,boolean)去指定一个根视图和防止依附于根视图。)
  参见
getView(int,View,ViewGroup)


  publicbooleanhasStableIds()
无论项ID代表的基础数据的是否变化都保持不变。
      返回值

  如果为TRUE,意味着相同的ID始终引用相同的对象。

  publicViewnewDropDownView(Contextcontext,Cursorcursor,ViewGroupparent)
  生成一个新的下拉视图来保存cursor指向的数据
参数
  context应用程序全局信息接口(应用上下文)
  cursor获取数据的游标,它已经移动到正确的位置
  parent与新视图相关联的上级视图
  返回值
  新创建的视图。

  publicabstractViewnewView(Contextcontext,Cursorcursor,ViewGroupparent)
  新建一个视图来保存cursor指向的数据
参数
  context应用程序全局信息接口(应用上下文)
  cursor获取数据的游标,它已经移动到正确的位置
  parent与新视图相关联的上级视图
  返回值
  新创建的视图。

  publicCursorrunQueryOnBackgroundThread(CharSequenceconstraint)
  执行含指定约束的查询。此查询依赖于适配器的过滤器。查询是由
FilterQueryProvider
提供。如果没有指定FilterQueryProvider,当前cursor不过滤只返回。该方法会通过changeCursor(Cursor)方法返回一个Cursor对象,并且关闭掉先前的Cursor对象。这个方法始终在后台线程执行,而不是在应用程序的主线程(或是UI线程)中运行。规定:当参数constraint为null或为空时,该方法返回原始结果。
  参数
  constraint该查询必须被过滤的约束。
  返回值
  返回含有新的查询结果的Cursor。
  参考
getFilter()

getFilterQueryProvider()

setFilterQueryProvider(android.widget.FilterQueryProvider)


  publicvoidsetFilterQueryProvider(FilterQueryProviderfilterQueryProvider)
  设置一个过滤器,用来过滤当前的Cursor对象。当这个适配器需要进行过滤操作时,
runQuery(CharSequence)
方法被调用

  参数
  filterQueryProvider过滤器对象,设置为null时,就相当于移除了该过滤器。
参考

getFilterQueryProvider()


runQueryOnBackgroundThread(CharSequence)


  五、受保护方法

  protectedvoidinit(Contextcontext,Cursorc,booleanautoRequery)
  (译者注:供构造函数使用初始化相关参数)

  protectedvoidonContentChanged()
   当cursor对象上的ContentObserver接收到改变的通知时就会调用该方法,其默认实现提供了自动重新查询方式,但可以被子类重写。

  六、补充

  文章精选
androidCursorAdapter的监听事件
实现基于Android的英文电子词典
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: