光标可以被视为某些基本数据的指针。 在光标对象上运行 < code> c.toString () 将打印默认的 Cursor
类执行字符串表达式( 一个签名字符 和该对象散列代码的未签名十六进制表示), 这不是你想要的 。
要检索基本数据库数据, 您需要调用 c. get String( clunnIndex) code> ( source a>), 或该特定列索引所需的任何列数据类型 。
这里举个例子。 从来源修改:
说你创造了一张桌子
private static final String DATABASE_CREATE =
"create table comments ( "
+ "_id integer primary key autoincrement, "
+ "comment text not null);";
您的 getalles
函数返回一个光标, 该光标指向有关 和 和 comment
的数据。 现在你只想显示有关 comment
列的细节。 所以, 您必须运行 c. getString(1)
。 假设您的 getallgoles
函数返回只指向 comment
列的数据的光标。 现在您必须运行 c. gettring(0)
。
我建议您下载所提供的示例中的源代码,并查看如何从光标中提取数据。
<强度 > EDIT: 强度 >
public List<Comment> getAllComments() {
List<Comment> comments = new ArrayList<Comment>();
Cursor cursor = database.query(MySQLiteHelper.TABLE_COMMENTS,
allColumns, null, null, null, null, null);
cursor.moveToFirst();
while (!cursor.isAfterLast()) {//retrieve data from multiple rows
Comment comment = cursorToComment(cursor);
comments.add(comment);
cursor.moveToNext();
}
// Make sure to close the cursor
cursor.close();
return comments;
}
private Comment cursorToComment(Cursor cursor) {
Comment comment = new Comment();
comment.setId(cursor.getLong(0));
comment.setComment(cursor.getString(1));
return comment;
}
来源