public class CursorWrapper extends Object implements Cursor
Modifier and Type | Field and Description |
---|---|
protected Cursor |
mCursor |
FIELD_TYPE_BLOB, FIELD_TYPE_FLOAT, FIELD_TYPE_INTEGER, FIELD_TYPE_NULL, FIELD_TYPE_STRING
Constructor and Description |
---|
CursorWrapper(Cursor cursor)
Creates a cursor wrapper.
|
Modifier and Type | Method and Description |
---|---|
void |
close()
Closes the Cursor, releasing all of its resources and making it completely invalid.
|
void |
copyStringToBuffer(int columnIndex,
CharArrayBuffer buffer)
Retrieves the requested column text and stores it in the buffer provided.
|
void |
deactivate()
Deactivates the Cursor, making all calls on it fail until
Cursor.requery() is called. |
byte[] |
getBlob(int columnIndex)
Returns the value of the requested column as a byte array.
|
int |
getColumnCount()
Return total number of columns
|
int |
getColumnIndex(String columnName)
Returns the zero-based index for the given column name, or -1 if the column doesn't exist.
|
int |
getColumnIndexOrThrow(String columnName)
Returns the zero-based index for the given column name, or throws
IllegalArgumentException if the column doesn't exist. |
String |
getColumnName(int columnIndex)
Returns the column name at the given zero-based column index.
|
String[] |
getColumnNames()
Returns a string array holding the names of all of the columns in the
result set in the order in which they were listed in the result.
|
int |
getCount()
Returns the numbers of rows in the cursor.
|
double |
getDouble(int columnIndex)
Returns the value of the requested column as a double.
|
Bundle |
getExtras()
Returns a bundle of extra values.
|
float |
getFloat(int columnIndex)
Returns the value of the requested column as a float.
|
int |
getInt(int columnIndex)
Returns the value of the requested column as an int.
|
long |
getLong(int columnIndex)
Returns the value of the requested column as a long.
|
int |
getPosition()
Returns the current position of the cursor in the row set.
|
short |
getShort(int columnIndex)
Returns the value of the requested column as a short.
|
String |
getString(int columnIndex)
Returns the value of the requested column as a String.
|
int |
getType(int columnIndex)
Returns data type of the given column's value.
|
boolean |
getWantsAllOnMoveCalls()
onMove() will only be called across processes if this method returns true.
|
Cursor |
getWrappedCursor()
Gets the underlying cursor that is wrapped by this instance.
|
boolean |
isAfterLast()
Returns whether the cursor is pointing to the position after the last
row.
|
boolean |
isBeforeFirst()
Returns whether the cursor is pointing to the position before the first
row.
|
boolean |
isClosed()
return true if the cursor is closed
|
boolean |
isFirst()
Returns whether the cursor is pointing to the first row.
|
boolean |
isLast()
Returns whether the cursor is pointing to the last row.
|
boolean |
isNull(int columnIndex)
Returns
true if the value in the indicated column is null. |
boolean |
move(int offset)
Move the cursor by a relative amount, forward or backward, from the
current position.
|
boolean |
moveToFirst()
Move the cursor to the first row.
|
boolean |
moveToLast()
Move the cursor to the last row.
|
boolean |
moveToNext()
Move the cursor to the next row.
|
boolean |
moveToPosition(int position)
Move the cursor to an absolute position.
|
boolean |
moveToPrevious()
Move the cursor to the previous row.
|
void |
registerContentObserver(ContentObserver observer)
Register an observer that is called when changes happen to the content backing this cursor.
|
void |
registerDataSetObserver(DataSetObserver observer)
Register an observer that is called when changes happen to the contents
of the this cursors data set, for example, when the data set is changed via
Cursor.requery() , Cursor.deactivate() , or Cursor.close() . |
boolean |
requery()
Performs the query that created the cursor again, refreshing its
contents.
|
Bundle |
respond(Bundle extras)
This is an out-of-band way for the the user of a cursor to communicate with the cursor.
|
void |
setNotificationUri(ContentResolver cr,
Uri uri)
Register to watch a content URI for changes.
|
void |
unregisterContentObserver(ContentObserver observer)
Unregister an observer that has previously been registered with this
cursor via
Cursor.registerContentObserver(android.database.ContentObserver) . |
void |
unregisterDataSetObserver(DataSetObserver observer)
Unregister an observer that has previously been registered with this
cursor via
Cursor.registerContentObserver(android.database.ContentObserver) . |
protected final Cursor mCursor
public CursorWrapper(Cursor cursor)
cursor
- The underlying cursor to wrap.public Cursor getWrappedCursor()
public void close()
Cursor
Cursor.deactivate()
a call to Cursor.requery()
will not make the Cursor valid
again.public boolean isClosed()
Cursor
public int getCount()
Cursor
public void deactivate()
Cursor
Cursor.requery()
is called.
Inactive Cursors use fewer resources than active Cursors.
Calling Cursor.requery()
will make the cursor active again.deactivate
in interface Cursor
public boolean moveToFirst()
Cursor
This method will return false if the cursor is empty.
moveToFirst
in interface Cursor
public int getColumnCount()
Cursor
getColumnCount
in interface Cursor
public int getColumnIndex(String columnName)
Cursor
Cursor.getColumnIndexOrThrow(String)
instead, which
will make the error more clear.getColumnIndex
in interface Cursor
columnName
- the name of the target column.Cursor.getColumnIndexOrThrow(String)
public int getColumnIndexOrThrow(String columnName) throws IllegalArgumentException
Cursor
IllegalArgumentException
if the column doesn't exist. If you're not sure if
a column will exist or not use Cursor.getColumnIndex(String)
and check for -1, which
is more efficient than catching the exceptions.getColumnIndexOrThrow
in interface Cursor
columnName
- the name of the target column.IllegalArgumentException
- if the column does not existCursor.getColumnIndex(String)
public String getColumnName(int columnIndex)
Cursor
getColumnName
in interface Cursor
columnIndex
- the zero-based index of the target column.public String[] getColumnNames()
Cursor
getColumnNames
in interface Cursor
public double getDouble(int columnIndex)
Cursor
The result and whether this method throws an exception when the
column value is null, the column type is not a floating-point type, or the
floating-point value is not representable as a double
value is
implementation-defined.
public Bundle getExtras()
Cursor
These values may only change when requery is called.
getExtras
in interface Cursor
Bundle.EMPTY
if there
are no values. Never null
.public float getFloat(int columnIndex)
Cursor
The result and whether this method throws an exception when the
column value is null, the column type is not a floating-point type, or the
floating-point value is not representable as a float
value is
implementation-defined.
public int getInt(int columnIndex)
Cursor
The result and whether this method throws an exception when the
column value is null, the column type is not an integral type, or the
integer value is outside the range [Integer.MIN_VALUE
,
Integer.MAX_VALUE
] is implementation-defined.
public long getLong(int columnIndex)
Cursor
The result and whether this method throws an exception when the
column value is null, the column type is not an integral type, or the
integer value is outside the range [Long.MIN_VALUE
,
Long.MAX_VALUE
] is implementation-defined.
public short getShort(int columnIndex)
Cursor
The result and whether this method throws an exception when the
column value is null, the column type is not an integral type, or the
integer value is outside the range [Short.MIN_VALUE
,
Short.MAX_VALUE
] is implementation-defined.
public String getString(int columnIndex)
Cursor
The result and whether this method throws an exception when the column value is null or the column type is not a string type is implementation-defined.
public void copyStringToBuffer(int columnIndex, CharArrayBuffer buffer)
Cursor
copyStringToBuffer
in interface Cursor
columnIndex
- the zero-based index of the target column.
if the target column is null, return bufferbuffer
- the buffer to copy the text into.public byte[] getBlob(int columnIndex)
Cursor
The result and whether this method throws an exception when the column value is null or the column type is not a blob type is implementation-defined.
public boolean getWantsAllOnMoveCalls()
Cursor
getWantsAllOnMoveCalls
in interface Cursor
public boolean isAfterLast()
Cursor
isAfterLast
in interface Cursor
public boolean isBeforeFirst()
Cursor
isBeforeFirst
in interface Cursor
public boolean isFirst()
Cursor
public boolean isLast()
Cursor
public int getType(int columnIndex)
Cursor
Cursor.getInt(int)
, Cursor.getFloat(int)
etc.
Returned column types are
public boolean isNull(int columnIndex)
Cursor
true
if the value in the indicated column is null.public boolean moveToLast()
Cursor
This method will return false if the cursor is empty.
moveToLast
in interface Cursor
public boolean move(int offset)
Cursor
This method will return true if the requested destination was reachable, otherwise, it returns false. For example, if the cursor is at currently on the second entry in the result set and move(-5) is called, the position will be pinned at -1, and false will be returned.
public boolean moveToPosition(int position)
Cursor
This method will return true if the request destination was reachable, otherwise, it returns false.
moveToPosition
in interface Cursor
position
- the zero-based position to move to.public boolean moveToNext()
Cursor
This method will return false if the cursor is already past the last entry in the result set.
moveToNext
in interface Cursor
public int getPosition()
Cursor
getPosition
in interface Cursor
public boolean moveToPrevious()
Cursor
This method will return false if the cursor is already before the first entry in the result set.
moveToPrevious
in interface Cursor
public void registerContentObserver(ContentObserver observer)
Cursor
Cursor.requery()
is called.registerContentObserver
in interface Cursor
observer
- the object that gets notified when the content backing the cursor changes.Cursor.unregisterContentObserver(ContentObserver)
public void registerDataSetObserver(DataSetObserver observer)
Cursor
Cursor.requery()
, Cursor.deactivate()
, or Cursor.close()
.registerDataSetObserver
in interface Cursor
observer
- the object that gets notified when the cursors data set changes.Cursor.unregisterDataSetObserver(DataSetObserver)
public boolean requery()
Cursor
Cursor.deactivate()
.
Since this method could execute a query on the database and potentially take
a while, it could cause ANR if it is called on Main (UI) thread.
A warning is printed if this method is being executed on Main thread.public Bundle respond(Bundle extras)
Cursor
One use of this is to tell a cursor that it should retry its network request after it reported an error.
respond
in interface Cursor
extras
- extra values, or Bundle.EMPTY
.
Never null
.Bundle.EMPTY
.
Never null
.public void setNotificationUri(ContentResolver cr, Uri uri)
Cursor
setNotificationUri
in interface Cursor
cr
- The content resolver from the caller's context. The listener attached to
this resolver will be notified.uri
- The content URI to watch.public void unregisterContentObserver(ContentObserver observer)
Cursor
Cursor.registerContentObserver(android.database.ContentObserver)
.unregisterContentObserver
in interface Cursor
observer
- the object to unregister.Cursor.registerContentObserver(ContentObserver)
public void unregisterDataSetObserver(DataSetObserver observer)
Cursor
Cursor.registerContentObserver(android.database.ContentObserver)
.unregisterDataSetObserver
in interface Cursor
observer
- the object to unregister.Cursor.registerDataSetObserver(DataSetObserver)