首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安卓SQLite:游标中的疑问

安卓SQLite:游标中的疑问
EN

Stack Overflow用户
提问于 2014-12-06 16:47:41
回答 1查看 172关注 0票数 0

我目前正在学习android SQLite数据库编程。在这里阅读教程的时候。我碰到了一段代码,

代码语言:javascript
复制
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如果此代码返回查询,

代码语言:javascript
复制
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);

为什么我们要将光标移到这一行的第一行?

代码语言:javascript
复制
cursor.moveToFirst();

问题2

这个代码是做什么的?

代码语言:javascript
复制
Contact contact = new Contact(Integer.parseInt(cursor.getString(0)),
                cursor.getString(1), cursor.getString(2));

我看了官方文件,但还是不明白。有人能用一个简单的例子来解释吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-06 16:57:42

问题1:因为光标最初是在第一行元素之前设置的。问题2:它从行中获取字符串(在游标对象中设置为current ),从具有0、1和2号的列(每行由列组成)获取字符串,然后使用它们创建contact对象。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27333979

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档