android.widget.SimpleCursorAdapter
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
SimpleCursorAdapter.ViewBinder is available,
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,
setViewText(TextView, String) is invoked. If the returned value
is false and the view to bind is an ImageView,
setViewImage(ImageView, String) is invoked. If no appropriate
binding can be found, an IllegalStateException is thrown.
If this adapter is used with filtering, for instance in an
AutoCompleteTextView, you can use the
SimpleCursorAdapter.CursorToStringConverter and the
SimpleCursorAdapter.FilterQueryProvider interfaces
to get control over the filtering process. You can refer to
convertToString(android.database.Cursor) and
runQuery(CharSequence) for more information.
Nested Classes
Summary
Fields
| protected |
|
|
int[] |
mFrom |
A list of columns containing the data to bind to the UI. |
| protected |
|
|
int[] |
mTo |
A list of View ids representing the views to which the data must be bound. |
Public Constructors
Public Methods
Protected Methods
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait
Details
Fields
protected
int[]
mFrom
A list of columns containing the data to bind to the UI.
protected
int[]
mTo
A list of View ids representing the views to which the data must be bound.
Public Constructors
public
SimpleCursorAdapter(Context context, int layout, Cursor c, String[] from, int[] to)
Constructor.
Parameters
| context
| The context where the ListView associated with this
SimpleListItemFactory is running |
| layout
| resource identifier of a layout file that defines the views
for this list item. Thelayout file should include at least
those named views defined in "to" |
| c
| The database cursor |
| from
| A list of column names representing the data to bind to the UI |
| 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.
|
Public Methods
public
void
bindView(View view, Context context, Cursor cursor)
Binds all of the field names passed into the "to" parameter of the
constructor with their corresponding cursor columns as specified in the
"from" parameter.
Binding occurs in two phases. First, if a
SimpleCursorAdapter.ViewBinder is available,
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,
setViewText(TextView, String) is invoked. If the returned value is
false and the view to bind is an ImageView,
setViewImage(ImageView, String) is invoked. If no appropriate
binding can be found, an
IllegalStateException is thrown.
Parameters
| view
| Existing view, returned earlier by newView |
| context
| Interface to application's global information |
| cursor
| The cursor from which to get the data. The cursor is already
moved to the correct position.
|
Returns the converter used to convert the filtering Cursor
into a String.
Returns the query filter provider used for filtering. When the
provider is null, no filtering occurs.
Returns
- the current filter query provider or null if it does not exist
public
int
getStringConversionColumn()
Return the index of the column used to get a String representation
of the Cursor.
Returns
- a valid index in the current Cursor or -1
public
void
setCursorToStringConverter(CursorToStringConverter cursorToStringConverter)
Sets the converter used to convert the filtering Cursor
into a String.
Parameters
| cursorToStringConverter
| the Cursor to String converter, or
null to remove the converter |
public
void
setFilterQueryProvider(FilterQueryProvider filterQueryProvider)
Sets the query filter provider used to filter the current Cursor.
The provider's
runQuery(CharSequence)
method is invoked when filtering is requested by a client of
this adapter.
Parameters
| filterQueryProvider
| the filter query provider or null to remove it |
public
void
setStringConversionColumn(int stringConversionColumn)
Defines the index of the column in the Cursor used to get a String
representation of that Cursor. The column is used to convert the
Cursor to a String only when the current CursorToStringConverter
is null.
Parameters
| stringConversionColumn
| a valid index in the current Cursor or -1 to use the default
conversion mechanism |
public
void
setViewBinder(ViewBinder viewBinder)
Sets the binder used to bind data to views.
Parameters
| viewBinder
| the binder used to bind data to views, can be null to
remove the existing binder |
public
void
setViewImage(ImageView v, String value)
Called by bindView() to set the image for an ImageView but only if
there is no existing ViewBinder or if the existing ViewBinder cannot
handle binding to an ImageView.
By default, the value will be treated as an image resource. If the
value cannot be used as an image resource, the value is used as an
image Uri.
Intended to be overridden by Adapters that need to filter strings
retrieved from the database.
Parameters
| v
| ImageView to receive an image |
| value
| the value retrieved from the cursor
|
public
void
setViewText(TextView v, String text)
Called by bindView() to set the text for a TextView but only if
there is no existing ViewBinder or if the existing ViewBinder cannot
handle binding to an TextView.
Intended to be overridden by Adapters that need to filter strings
retrieved from the database.
Parameters
| v
| TextView to receive text |
| text
| the text to be set for the TextView
|
Protected Methods
protected
String
convertToString(Cursor cursor)
Returns a String representation of the specified Cursor as defined
by the current CursorToStringConverter. If no CursorToStringConverter
has been set, the String conversion column is used instead. If the
conversion column is -1, the returned String is empty if the cursor
is null or Cursor.toString().
Parameters
| cursor
| the Cursor to convert to a String |
Returns
- a non-null String representing the cursor
Runs a query with the specified constraint. This query is requested
by the filter attached to this adapter.
The query is provided by a
SimpleCursorAdapter.FilterQueryProvider.
If no provider is specified, the current cursor is not filtered.
Contract: when constraint is null or empty, the original results,
prior to any filtering, must be returned.
Parameters
| constraint
| the constraint with which the query must be filtered |
Returns
- a Cursor representing the results of the new query