天天看点

Android 3.0 r1 API中文文档(106) —— SimpleCursorAdapter

正文

一、结构

public class SimpleCusrorAdapter extends ResourceCusorAdpater

java.lang.Object

android.widget.BaseAdapter

         android.widget.CursorAdapter

                            android.widget.ResourceCusorAdapter

                                     android.widget.SimpleCusorAdapter

  二、概述

  三、内部类

    public interface SimpleCusorAdapter.ViewBinder        

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

    public interface SimpleCusorAdapter.CursorToStringConverter  

           这个内部接口可以在外部通过SimpleCursorAdapter.CursorToStringConverter的方式   定义怎样将Cursor转换成字符串。

  四、构造函数

    public SimpleCursorAdapter (Context context, int layout, Cursor c, String[] from, int[] to)

           构造函数启动自动重新查询(auto-requery)。

           这个构造器已被标记为弃用(@Deprecated) 。

  该方法不推荐使用,Cursor查询操作是执行在应用程序的UI线程当中,那么会导致无响应的情况。另一种方式是使用LoaderManager和CursorLoader来进行。

         (译者注:3.0已不推荐使用该构造方法)

                  参数

                       context  应用程序上下文,具体来说就是ListView所在的上下文当中。

   layout    布局文件的资源定位标识符,也就是说标识了ListView中的item。那么这个布局文件至少包含了参数“to”中的传进来值。

                       c            数据库游标,如果游标不可用则为null。

  from       列名字列表,表示着你要绑定到UI上的列。如果游标不可用则为null。

  to           展示参数“from”中的列,也就是说ListView中的视图显示的是参数“from”的列值,这些视图应该都是TextView。如果游标不可用则为null。

    public SimpleCursorAdapter (Context context, int layout, Cursor c, String[] from, int[]      to,int flags)     

           该适配器类标准的构造函数。(译者注:3.0新添的构造方法)

                    context  应用程序上下文,具体来说就是ListView所在的上下文当中。

   layout     布局文件的资源定位标识符,也就是说标识了ListView中的item。那么这个布局文件至少包含了参数“to”中的传进来值。

                        c            数据库游标,如果游标不可用则为null。

   from       列名字列表,表示着你要绑定到UI上的列。如果游标不可用则为null。

   to           展示参数“from”中的列,也就是说ListView中的视图显示的是参数“from”的列值,这些视图应该都是TextView。如果游标不可用则为null。

 flags               这个标志用来决定该适配器的行为。(译者注:Android3.0推荐我们传递CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER。设置标志用来添加一个监听器,监听着参数cursor的数据是否有更变。)

  四、公共方法

  public void bindView (View view, Context context, Cursor cursor)

  参数

                            view               已存在的视图(View)对象, 也就是早先new出来的。

                            context          应用程序上下文。

                            cursor            数据库游标。该游标已经移动到指定位置上。

                  异常

                            IllegalStateException 如果绑定的视图中不是TextView或是ImageView则会                           抛出这个异常。

                   参见

  public void changeCursorAndColumns(Cursor c, String[] from, int[] to)

           同时更改Cursor与View的映射关系。

                       c                 数据库游标,如果游标不可用则为null。 

  from            列名字列表,表示着你要绑定到UI上的列。如果游标不可用则为null。

  to               展示参数“from”中的列,也就是说ListView中的视图显示的是参数“from”的列值,这些视图应该都是TextView。如果游标不可用则为null。

  public CharSequence convertToString (Cursor cursor)

  通过CursorToStringConverter接口实现并返回一个CharSequence 类型的值,以表示指定的Cursor。如果没有设置CursorToStringConverter,那么就会用另外的方式进行转换。如果列数为-1,或者 cursor为null返回空串,否则返回cursor.toString()。

                            cursor               转换为CharSequence的数据库游标。

          返回值

                   返回一个不为null的CharSequence类型来表示参数cursor。

  public SimpleCursorAdapter.CursorToStringConverter getCursorToStringConverter ()

           返回自定义的SimpleCursorAdapter.CursorToStringConverter的实现。

  返回值

                   如果没有设置SimpleCursorAdapter.CursorToStringConverter,则为null。

  参考

  public int getStringConversionColumn ()

           返回转换成String类型的列位置。

                   返回列位置,如果没有则返回-1。

  public SimpleCursorAdapter.ViewBinder getViewBinder ()

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

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

  public void setCursorToStringConverter (SimpleCursorAdapter.CursorToStringConverter cursorToStringConverter)

  设置String转换器。

                   参数

                            cursorToStringConverter String转换器,设置为null就意味着移除。

                   参考

  public void setStringConversionColumn (int stringConversionColumn)

  设置Cursor中的列要转换成String类型的位置。不过仅当未设置CursorToStringConverter时,这个列才会进行默认转换。

                            stringConversionColumn 列位置,如果参数为-1,则使用默认转换机制。

  public void setViewBinder (SimpleCursorAdapter.ViewBinder viewBinder)

  设置视图绑定器。

                            viewBinder 视图绑定器,可用为null删除现有的绑定器。

  public void setViewImage (ImageView v, String value)

  仅当ViewBinder不存在或是当ViewBinder不为ImageView绑定时(也就是setViewValue()返回false),则这个方法会被bindView()调用,以便为ImageView设置图片。默认情况下,参数value作为图片资源ID来看待,否则,会视为图片的Uri。         另外还可以通过过滤器来获得更灵活的设置。

                            v                 图片控件引用

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

  public void setViewText (TextView v, String text)

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

                            v                 文本控件引用

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

  public Cursor swapCursor (Cursor c)

                            c 新的Cursor对象。

                   返回值

  返回旧的Cursor引用,如果参数cursor不可用,则返回null。如果参数cursor与原来的Cursor引用相同,那么也返回null。

  五、补充

    文章精选

    示例代码

SimpleCursorAdapter.CursorToStringConverter

译者署名: 深夜未眠

版本:Android 3.0 r1

public static interface SimpleCusrorAdapter.CursorToStringConverter

android.widget.SimpleCursorAdapter.CursorToStringConverter

  二、概述 

         这个内部接口可以在外部通过SimpleCursorAdapter.CursorToStringConverter的方式定义怎样将Cursor转换成字符串。

         参见

  三、公共方法 

  public abstract CharSequence convertToString (Cursor cursor)

          返回CharSequence类型的值,用来表示参数cursor。

                            cusor   需要转换成CharSequence类型的数据库游标。

                            返回代表参数cursor的非空字符串。

SimpleCursorAdapter.ViewBinder

public static interface SimpleCusrorAdapter.ViewBinder

android.widget.SimpleCursorAdapter.ViewBinder

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

           参见

  三、公共方法

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

  将指定的列数据绑定到指定的视图上。当ViewBinder处理时,这个方法必须返回true。如果这个方法返回false, SimpleCursorAdapter将用自己的方式进行绑定操作。

                            view                         被绑定的视图。

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

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

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

本文转自over140 51CTO博客,原文链接:http://blog.51cto.com/over140/582379,如需转载请自行联系原作者