1 回答
TA贡献1798条经验 获得超3个赞
cursor.getColumnIndex(...)
只返回行的列索引。要获取该列中的值,您有以下几种选择:
如果事先知道数据类型,则可以直接调用
cursor
. 例如,如果该列DBHelper.KEY_NAME
包含String
,我们可以直接使用查询该列中的值cursor.getString(cursor.getColumnIndex(DBHelper.KEY_NAME))
如果不这样做,您可以尝试调用
cursor.getType(int columnIndex)
以获取基础类型,然后根据返回值在游标上调用适当的方法。
简而言之,代码的问题在于您获取的是列索引( getColumnIndex
) 而不是列值(getFloat
、getInt
等getString
):
...
int idIndex = cursor.getColumnIndex(DBHelper.KEY_ID);
int nameIndex = cursor.getColumnIndex(DBHelper.KEY_NAME);
int hourIndex = cursor.getColumnIndex(DBHelper.KEY_HOUR);
int dateIndex = cursor.getColumnIndex(DBHelper.KEY_DATE);
String name = cursor.getString(nameIndex);
String hour = cursor.getString(hourIndex);
String date = cursor.getString(dateIndex);
...
添加回答
举报