前言

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

声明

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

    博客园:http://www.cnblogs.com/

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

正文

  一、结构

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

    示例代码

      SimpleCursorTreeAdapter(深夜未眠).rar

SimpleCursorTreeAdapter.ViewBinder

译者署名: 深夜未眠

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

翻译时间:2011-3-3

版本:Android 3.0 r1

结构

继承关系

public static interface SimpleCusrorTreeAdapter.ViewBinder

java.lang.Object

android.widget.SimpleCursorTreeAdapter.ViewBinder

类概述

这个内部接口可以在外部通过SimpleCursorTreeAdapter.ViewBinder的方式进行 Cursor与View的绑定。Android推荐我们采用这种方式进行绑定操作,而不是沿用SimpleCursorTreeAdapter内部的方式。

参见

setViewImage(ImageView, String)

     setViewText(TextView, String)

公共方法

public abstract boolean setViewValue (View view, Cursor cursor, int columnIndex)

  将指定的列数据绑定到指定的视图上。当ViewBinder处理绑定时,这个方法必须返回true;否则SimpleAdapter将尝试通过其内部默认的方法绑定数据。

参数

view                         被绑定的视图。

cursor                      数据库游标,绑定数据从它这里获取

columnIndex          列位置,能够在数据库游标中寻找到。

返回值

    返回true意味着数据与视图已经绑定上,否则为未绑定上。

Android中文API (109) —— SimpleCursorTreeAdapter的更多相关文章

  1. Android 中文 API (40) —— RatingBar

    Android 中文 API (40) —— RatingBar 前言 本章内容是 android.widget.RatingBar,译为"评分条",版本为Android 2.2 ...

  2. Android 中文API (70) —— BluetoothDevice[蓝牙]

    前言 本章内容是  android.bluetooth.BluetoothDevice,为Android蓝牙部分的章节翻译.蓝牙设备类,代表了蓝牙通讯国足中的远端设备.版本为 Android  2.3 ...

  3. Android 中文API (69) —— BluetoothAdapter[蓝牙]

    前言 本章内容是  android.bluetooth.BluetoothAdapter,为Android蓝牙部分的章节翻译.本地蓝牙设备的适配类,所有的蓝牙操作都要通过该类完成.版本为 Androi ...

  4. Android 中文API (68) —— BluetoothClass.Service

    前言 本章内容是 android.bluetooth.BluetoothClass.Service,为Android蓝牙部分的章节翻译,版本为 Android 2.3   r1,翻译来自中山大学的&q ...

  5. Android 中文API (67) —— BluetoothClass.Device.Major

    前言 本章内容是android.bluetooth.BluetoothClass.Device.Major,为Android蓝牙部分的章节翻译,版本为Android 2.3   r1,翻译来自中山大学 ...

  6. Android 中文API (66) —— BluetoothClass.Device

    前言 本章内容是android.bluetooth.BluetoothClass.Device,为Android蓝牙部分的章节翻译,版本为Android 2.3   r1,翻译来自中山大学的" ...

  7. Android 中文API (65) —— BluetoothClass[蓝牙]

    前言 本章内容是android.bluetooth.BluetoothClass,为Android蓝牙部分的章节翻译.用于描述远端设备的类型,特点等信息,通过getBluetoothClass()方法 ...

  8. android中文api(79)——Gallery

    前言 本章内容是 android.widget.Gallery,版本为Android 2.3 r1,翻译来自"henly.zhang",欢迎大家访问他的博客:http://www. ...

  9. Android中文API

    Android中文API http://www.android-doc.com/index.html

随机推荐

  1. OpenGL shader渲染贴图

    simple.vert #version core layout (location = ) in vec3 position; layout (location = ) in vec3 color; ...

  2. Windows Server 2012 R2 官方原版镜像

    微软操作系统 Windows Server 2012 R2 官方原版镜像 Windows Server 2012 R2 是由微软公司(Microsoft)设计开发的新一代的服务器专属操作系统,其核心版 ...

  3. @postconstruct初始化的操作

    从Java EE 5规范开始,Servlet中增加了两个影响Servlet生命周期的注解(Annotion):@PostConstruct和@PreDestroy.这两个注解被用来修饰一个非静态的vo ...

  4. Android App性能评测分析-流畅度篇

    1.前言 在手机App竞争越来越激烈的今天,Android App的各项性能特别是流畅度不如IOS,安卓基于java虚拟机运行,触控响应的延迟和卡顿比IOS系统严重得多.一些下拉上滑.双指缩放快速打字 ...

  5. C#图解教程 第二十章 异步编程

    笔记 异步编程 什么是异步 示例 async/await特性的结构什么是异步方法 异步方法的控制流await表达式取消一个异步操作异常处理和await表达式在调用方法中同步地等待任务在异步方法中异步地 ...

  6. [BZOJ1009] [HNOI2008] GT考试 (KMP & dp & 矩阵乘法)

    Description 阿申准备报名参加GT考试,准考证号为N位数X1X2....Xn(0<=Xi<=9),他不希望准考证号上出现不吉利的数字. 他的不吉利数学A1A2...Am(0< ...

  7. PHP随机函数-集锦

    1 PHP随机函数收藏 function random_string($len = 6) { $chars = array( "a", "b", "c ...

  8. Infinite Fraction Path HDU 6223 2017沈阳区域赛G题题解

    题意:给你一个字符串s,找到满足条件(s[i]的下一个字符是s[(i*i+1)%n])的最大字典序的长度为n的串. 思路:类似后缀数组,每次倍增来对以i开头的字符串排序,复杂度O(nlogn).代码很 ...

  9. tensorflow 学习日志

    Windows安装anaconda 和 TensorFlow anaconda : https://zhuanlan.zhihu.com/p/25198543        anaconda 使用与说 ...

  10. 使用text-overflow: ellipsis 处理文本溢的一个小问题

    今天在做一个自定义 select多选 搜索的时候,有这样子的一个需求: 1.点击自定义的一个 选项内容框,下拉可多选项 2.多选项不允许换行,且父溢出拆剪,(单行)溢出部分使用 "...&q ...