Android Cursor? how to read object data?

angel picture angel · Aug 9, 2013 · Viewed 10k times · Source

i know a Cursor has method for get String, Int, etc but isn't there somethings as

mycursor.GetObject(index)

I want to create a dynamic method which returns an object and I only cast it.

or is it possible use mycursor.GetString(index) for any type? String,Float,Double,Long,Short, Blob,Int,etc

and I can use for example for a Float or a Int or any type and cast it?

for example

(Blob) newblob=mycursor.GetString(i_return_BloB);
(Int) newint=mycursor.GetString(i_return_Int);
(Float) newfloat=mycursor.GetString(i_return_Float);
(Double) newdouble=mycursor.GetString(i_return_Double);
(Long) newlong=mycursor.GetString(i_return_long);
(Short) newshort=mycursor.GetString(i_return_short);

would it work? could i use mycursor.GetString() for any type?

Answer

dst picture dst · Aug 9, 2013

You can get the type of a column, and then call the appropiate method from a switch statement (and build the method you're asking for by yourself).

Using getString for different types is not safe, as the docs specify:

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.