我目前正在学习android SQLite数据库编程。从这里阅读this教程。我遇到了一段代码,
getContact()
// Getting single contact
public Contact getContact(int id) {
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.query(TABLE_CONTACTS, new String[] { KEY_ID,
KEY_NAME, KEY_PH_NO }, KEY_ID + "=?",
new String[] { String.valueOf(id) }, null, null, null, null);
if (cursor != null)
cursor.moveToFirst();
Contact contact = new Contact(Integer.parseInt(cursor.getString(0)),
cursor.getString(1), cursor.getString(2));
// return contact
return contact;
}
我的问题
问题1 如果此代码返回查询,
Cursor cursor = db.query(TABLE_CONTACTS, new String[] { KEY_ID,
KEY_NAME, KEY_PH_NO }, KEY_ID + "=?",
new String[] { String.valueOf(id) }, null, null, null, null);
为什么我们将光标移动到这一行的第一行?
cursor.moveToFirst();
问题2
这段代码有什么作用?
Contact contact = new Contact(Integer.parseInt(cursor.getString(0)),
cursor.getString(1), cursor.getString(2));
我阅读了官方文档,但仍然无法理解。有人能解释一个简单的例子吗?
答案 0 :(得分:1)
问题1:因为Cursor最初设置在第一行元素之前。 问题2:它从行中获取字符串,该行在光标对象中设置为当前列(每行由列组成),数字为0,1和2.然后,它使用它们创建联系对象。