返回介绍

SimpleCursorTreeAdapter

发布于 2025-03-09 17:00:33 字数 7645 浏览 0 评论 0 收藏 0

SimpleCursorTreeAdapter

翻译时间:2011-3-7

版本:Android 3.0 r1

结构

继承关系

public abstract class SimpleCusrorTreeAdapter extends

ResourceCusorTreeAdpater

java.lang.Object

android.widget.BaseExpandableListAdapter

android.widget.CursorTreeAdapter

android.widget.ResourceCusorTreeAdapter

android.widget.SimpleCursorTreeAdapter

类概述

这是一个用起来很方便的适配器类,它主要将 Cursor 与在 XML 文件中定义的 TextView 或 ImageView 进行映射。比如,你想设定要展示三列,那么当做好绑定之后,视图就会展示你设定好的那些列;当然了,视图的外观是定义在 XML 文件里面的,你只需用这个类与视图做好绑定就可以了。(译者注:Android 推荐我们尽可能的将组视图和子视图分离开,也就是说不要把整体定义在一个布局文件当中。)与视图绑定有两个阶段。第一阶段:如果使用 SimpleCursorTreeAdapter.ViewBinder 时,那么就会调用 setViewValue(android.view.View, android.database.Cursor, int) 方法。该方法返回 true 就说明绑定成功,否则返回 false,这就到了第二阶段,SimpleCursorAdapter 内部开始自行绑定,过程是这样的,若绑定到 TextView 上,调用 setViewText(TextView, String) ;若绑定到 ImageView 上,调用 setViewImage(ImageView, String) , 如果视图不是 TextView 或 ImageView 则抛出 IllegalStateException 异常。

内部类

public interface SimpleCursorTreeAdapter.ViewBinder

这个内部接口可以在外部通过 SimpleCursorTreeAdapter.ViewBinder 的方式进行 Cursor 与 View 的绑定。

构造函数

public SimpleCursorTreeAdapter (Context context, Cursor cursor, int collapsedGroupLayout, int expandedGroupLayout, String[] groupFrom, int[] groupTo, int childLayout, int lastChildLayout, String[] childFrom, int[] childTo)

构造函数。

参数

context 上下文,多指 ExpandableListView 的上下文

cursor 数据库游标

collapsedGroupLayout 布局资源文件标识 ID,其定义的是收缩时的 ExpandableListView 布局样式,并且内部至少要包含参数“groupTo”中指定的视图 ID。

expandedGroupLayout 布局资源文件标识 ID,其定义的是展开时的 ExpandableListView 布局样式,并且内部至少要包含参数“groupTo”中指定的视图 ID。

groupFrom 列名列表,显示 ExpandableListView 的组节点。

groupTo 展示参数“groupFrom”中的列,也就是说 ExpandableListView 中的视图显示的是参数 “groupFrom”的列值,它们应该都是 TextView 或是 ImageView。

childLayout 布局资源文件标识 ID,其定义的是子视图的布局样式 (不包括最后一个子视图),内部至少要包含参数 “childTo”中指定的视图 ID。lastChildLayout 布局资源文件标识 ID,其定义的是最后一个子视图的布局样式,内部至少要包含参数“childTo”中指定的视图 ID。

lastChildLayout 布局资源文件标识 ID,其定义的是最后一个子视图的布局样式,内部至少要包含参数“childTo”中指定的视图 ID。lastChildLayout 布局资源文件标识 ID,其定义的是最后一个子视图的布局样式,内部至少要包含参数“childTo”中指定的视图 ID。

childFrom 列名列表,显示 ExpandableListView 的子节点。

childTo 展示参数“childFrom ”中的列,也就是说 ExpandableListView 中的视图显示的是参数 “childFrom ”的列值,它们应该都是 TextView 或是 ImageView。

public SimpleCursorTreeAdapter (Context context, Cursor cursor, int collapsedGroupLayout, int expandedGroupLayout, String[] groupFrom, int[] groupTo, int childLayout, String[] childFrom, int[] childTo)

构造函数。(译者注:该构造函数只是少了一个参数 lastChildLayout)

参数

context 上下文,多指 ExpandableListView 的上下文

cursor 数据库游标

collapsedGroupLayout 布局资源文件标识 ID,其定义的是收缩时的 ExpandableListView 布局样式,并且内部至少要包含参数“groupTo”中指定的视图 ID。

expandedGroupLayout 布局资源文件标识 ID,其定义的是展开时的 ExpandableListView 布局样式,并且内部至少要包含参数“groupTo”中指定的视图 ID。

groupFrom 列名列表,显示 ExpandableListView 的组节点。

groupTo 展示参数“groupFrom”中的列,也就是说 ExpandableListView 中的视图显示的是参数 “groupFrom”的列值,它们应该都是 TextView 或是 ImageView。

childLayout 布局资源文件标识 ID,其定义的是子视图的布局样式 (不包括最后一个子视图),内部至少要包含参数 “childTo”中指定的视图 ID。lastChildLayout 布局资源文件标识 ID,其定义的是最后一个子视图的布局样式,内部至少要包含参数“childTo”中指定的视图 ID。

childFrom 列名列表,显示 ExpandableListView 的子节点。

childTo 展示参数“childFrom ”中的列,也就是说 ExpandableListView 中的视图显示的是参数 “childFrom ”的列值,它们应该都是 TextView 或是 ImageView。

public SimpleCursorTreeAdapter (Context context, Cursor cursor, int groupLayout, String[] groupFrom, int[] groupTo, int childLayout, String[] childFrom, int[] childTo)

构造函数。

参数

context 上下文,多指 ExpandableListView 的上下文

cursor 数据库游标

groupLayout 显示组元素的资源文件。该资源文件定义了如何显示组元素。该布局文件必须至少包括 groupTo 中所定义的 View。(即 groupTo 中的 View id 数组必须都在该布局文件中找到)

groupFrom 列名列表,显示 ExpandableListView 的组节点。

groupTo 展示参数“groupFrom”中的列,也就是说 ExpandableListView 中的视图显示的是参数 “groupFrom”的列值,它们应该都是 TextView 或是 ImageView。

childLayout 布局资源文件标识 ID,其定义的是子视图的布局样式 (不包括最后一个子视图),内部至少要包含参数 “childTo”中指定的视图 ID。lastChildLayout 布局资源文件标识 ID,其定义的是最后一个子视图的布局样式,内部至少要包含参数“childTo”中指定的视图 ID。

childFrom 列名列表,显示 ExpandableListView 的子节点。

childTo 展示参数“childFrom ”中的列,也就是说 ExpandableListView 中的视图显示的是参数 “childFrom ”的列值,它们应该都是 TextView 或是 ImageView。

公共方法

public SimpleCursorAdapter.ViewBinder getViewBinder ()

返回 SimpleCursorTreeAdapter.ViewBinder 引用,这个 ViewBinder 用来将数据绑定到 视图上的。

返回值

如果 ViewBinder 不存在,则返回 null。

参考

setViewBinder(android.widget.SimpleCursorTreeAdapter.ViewBinder)

public void setViewBinder (SimpleCursorTreeAdapter.ViewBinder viewBinder)

. 设置视图绑定器。

参数

viewBinder 视图绑定器。可以设置为 null 来删除已经存在的绑定器。

参考

getViewBinder()

public void setViewText (TextView v, String text)

仅当 ViewBinder 不存在或是当 ViewBinder 不为 TextView 绑定时(也就是 setViewValue() 返回 false),则这个方法会被 bindView() 调用,以便为 TextView 设置文本。可重写适配器从数据库中检索过滤字符串。

参数

v 文本控件引用

value 为文本控件设置的文本信息(译者注:是从 Cursor 获取到的)。

受保护方法

protected void bindChildView (View view, Context context, Cursor cursor, boolean isExpanded)

通过参数 cursor 将数据绑定到已有的子视图上。。

参数

view 已有视图,返回之前调用 newChildView 创建的视图。

context 应用程序上下文

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

isLastChild 子元素是否处于组中的最后一个

protected void bindGroupView (View view, Context context, Cursor cursor, boolean isExpanded)

通过参数 cursor 将数据绑定到已有组视图上。

参数

view 已有组视图,返回之前调用 newGroupView 创建的视图。

context 应用程序上下文

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

isExpanded 组视图是否呈展开状态

protected void setViewImage (ImageView v, String value)

这个方法会被 bindView() 调用,以便为 ImageView 设置图片。默认情况下,参数 value 作为图片资源 ID 来看待,否则会视为图片的 Uri。 另外还可以通过过滤器来获得更灵活的设置。

参数

v 图片控件引用

value 图片资源 ID,是从 Cursor 获取到的。

补充

文章精选

android 播放器(music player)源码分析 2

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文