------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
package android.widget; import android.content.Context; import android.database.Cursor; import android.net.Uri; import android.view.View; /** * An easy adapter to map columns from a cursor to TextViews or ImageViews * defined in an XML file. You can specify which columns you want, which * views you want to display the columns, and the XML file that defines * the appearance of these views. * * Binding occurs in two phases. First, if a * {@link android.widget.SimpleCursorAdapter.ViewBinder} is available, * {@link ViewBinder#setViewValue(android.view.View, android.database.Cursor, int)} * is invoked. If the returned value is true, binding has occured. If the * returned value is false and the view to bind is a TextView, * {@link #setViewText(TextView, String)} is invoked. If the returned value * is false and the view to bind is an ImageView, * {@link #setViewImage(ImageView, String)} is invoked. If no appropriate * binding can be found, an {@link IllegalStateException} is thrown. * * If this adapter is used with filtering, for instance in an * {@link android.widget.AutoCompleteTextView}, you can use the * {@link android.widget.SimpleCursorAdapter.CursorToStringConverter} and the * {@link android.widget.FilterQueryProvider} interfaces * to get control over the filtering process. You can refer to * {@link #convertToString(android.database.Cursor)} and * {@link #runQueryOnBackgroundThread(CharSequence)} for more information. */ /** * 用于将游标列映射到XML文件中定义的文本视图或图像视图的简单适配器. * 你可以指定有哪些列,由那些视图显示这些列的内容,并通过XML定义这些视图的呈现. * 绑定由两个阶段组成.首先,如果SimpleCursorAdapter.ViewBinder 可用, * 则执行 setViewValue(android.view.View, android.database.Cursor, int). * 如果返回值为真,代表发生了绑定.如果返回值为假,并且要绑定的是文本视图, * 则执行 setViewText(TextView, String) 方法.如果返回值为假,并且要绑定的是 ImageView, * 则执行setViewImage(ImageView, String).如果没有适当的绑定发生, 将抛出IllegalStateException. * 如果该适配器与过滤功能同时使用,比如在 AutoCompleteTextView中, * 可以使用 SimpleCursorAdapter.CursorToStringConverter和 FilterQueryProvider接口,用于控制过滤过程. * 详细信息可以参考 convertToString(android.database.Cursor)和 runQueryOnBackgroundThread(CharSequence). */ public class SimpleCursorAdapter extends ResourceCursorAdapter { /** * A list of columns containing the data to bind to the UI. * This field should be made private, so it is hidden from the SDK. * {@hide} */ protected int[] mFrom; /** * A list of View ids representing the views to which the data must be bound. * This field should be made private, so it is hidden from the SDK. * {@hide} */ protected int[] mTo; private int mStringConversionColumn = -1; private CursorToStringConverter mCursorToStringConverter; private ViewBinder mViewBinder; String[] mOriginalFrom; /** * Constructor the enables auto-requery. * * @deprecated This option is discouraged, as it results in Cursor queries * being performed on the application's UI thread and thus can cause poor * responsiveness or even Application Not Responding errors. As an alternative, * use {@link android.app.LoaderManager} with a {@link android.content.CursorLoader}. */ /** * 构造函数,启用自动再检索功能. * * 该 constructor 从 API 级别 11 开始已经废弃。 * 该选项已经废止,因为他会在应用程序的 UI 线程中执行 游标的检索, * 会导致响应变慢甚至发生应用程序无响应错误. * 请使用带有 CursorLoader 的 LoaderManager 来代替. * @param context 与运行中的 SimpleListItemFactory 关联的 ListView 的上下文 * @param layout 为该列表定义了视图的布局文件标识.布局文件应该至少包括“to”中定义的视图 * @param c 数据库游标.如果游标不可用,可设为空. * @param from 代表要绑定到UI的数据的列名列表.如果游标不可用,可设为空. * @param to 用于显示“from”参数的列的视图.应该都是 TextViews. 视图与from参数按位置一一对应.如果游标不可用,可设为空. */ @Deprecated public SimpleCursorAdapter(Context context, int layout, Cursor c, String[] from, int[] to) { super(context, layout, c); mTo = to; mOriginalFrom = from; findColumns(c, from); } /** * Standard constructor. * * @param context The context where the ListView associated with this * SimpleListItemFactory is running * @param layout resource identifier of a layout file that defines the views * for this list item. The layout file should include at least * those named views defined in "to" * @param c The database cursor. Can be null if the cursor is not available yet. * @param from A list of column names representing the data to bind to the UI. Can be null * if the cursor is not available yet. * @param to The views that should display column in the "from" parameter. * These should all be TextViews. The first N views in this list * are given the values of the first N columns in the from * parameter. Can be null if the cursor is not available yet. * @param flags Flags used to determine the behavior of the adapter, * as per {@link CursorAdapter#CursorAdapter(Context, Cursor, int)}. */ /** * 标准构造函数 * * @param context 与运行中的 SimpleListItemFactory 关联的 ListView 的上下文 * @param layout 为该列表定义了视图的布局文件标识.布局文件应该至少包括“to”中定义的视图 * @param c 数据库游标.如果游标不可用,可设为空. * @param from 代表要绑定到UI的数据的列名列表.如果游标不可用,可设为空. * @param to 用于显示“from”参数的列的视图.应该都是 TextViews. 视图与from参数按位置一一对应.如果游标不可用,可设为空. * @param flags 用于决定适配器行为的标志位.与 CursorAdapter(Context, Cursor, int) 相同. */ public SimpleCursorAdapter(Context context, int layout, Cursor c, String[] from, int[] to, int flags) { super(context, layout, c, flags); mTo = to; mOriginalFrom = from; findColumns(c, from); } ...... }