通过Cursor来提取实际的值,首先要使用moveTo<位置>方法来将Cursor移动到结果集中正确的行上。
在Cursor位于正确的行上的前提下,使用类型安全的get方法(传入一个列索引)来获得储存在当前行、特定列的值,如下面的片段所示:
String columnValue = myResult.getString(columnIndex);
数据库的实现应该公布列索引的静态变量,这样能比列名称更加容易识别。如之前描述的,它们一般都放在数据库适配器中定义。
接下来的例子显示了如何通过一个Cursor来枚举结果集,提取float值并进行求和:
int GOLD_HOARDED_COLUMN = 2;
Cursor myGold = myDatabase.query(“GoldHoards”, null, null, null, null, null, null);
float totalHoard = 0f;
// Make sure there is at least one row.
if (myGold.moveToFirst())
{
// Iterate over each cursor.
do
{
float hoard = myGold.getFloat(GOLD_HOARDED_COLUMN);
totalHoard += hoard;
} while(myGold.moveToNext());
}
float averageHoard = totalHoard / myGold.getCount();
由于SQLite数据库的列是松散类型的,在需要的时候,你可以转换单一的值到有效的类型上。举个例子,以float存储的值可以以字符串的方式读取。