java - 使用光标获取字段值

标签 java android android-sqlite

我正在创建一个应用程序,但 Cursor 有问题。我有一个 SQLiteDatabase,当我尝试使用此函数获取值时,它会返回一个 Cursor:

public Cursor fetchOption(long rowId) throws SQLException {

    Cursor mCursor = mDb.query(true, DATABASE_TABLE, new String[] {KEY_ROWID,
        KEY_TITLE, KEY_BODY}, KEY_ROWID + "=" + rowId, null,
        null, null, null, null);
    if (mCursor != null) {
        mCursor.moveToFirst();
    }
    return mCursor;

}

不知道如何获取Cursor中字段的值。如果我这样做:

String a = mOptionDb.fetchOption(0).getColumnName(0).toString();
String b = mOptionDb.fetchOption(0).getColumnName(1).toString();
String c = mOptionDb.fetchOption(0).getColumnName(2).toString();

我只获得列的名称(_id、title、body),而不是值。关于如何实现这一点的任何建议?

最佳答案

我认为您可以忘记检查 null。

改为检查是否有数据,然后使用光标访问列:

Cursor cursor = fetchOption(0);

if (cursor.moveToFirst()) // data?
   System.out.println(cursor.getString(cursor.getColumnIndex("title")); 

cursor.close(); // that's important too, otherwise you're gonna leak cursors

阅读 Android 教程可能也很有意义。记事本教程似乎符合要求:http://developer.android.com/guide/tutorials/notepad/index.html

关于java - 使用光标获取字段值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/903343/

相关文章:

JavaMail 检查邮件内容 gmail IMAP

java - 如何在 Firebase 中按字段过滤项目?

android - 在 Android 中,如何使登录按钮相对于 EditText 禁用?

android - 成功调用 .build() 后未调用 RoomDatabase.Callback() 的 onCreate()

java.lang.NumberFormatException : For input string: 异常

java - 正则表达式在java中查找以 'JD'固定字长开头的单词

ProGuard 上的 android.support.v8.renderscript 错误

java - 我应该使用哪种服务?

android - 如何通过索引获取 SQLite 中的一行(而不是通过 id)

android - 实现安卓音乐搜索