在游标中找到输出值到logcat? - Android

Ami*_*mit 15 database android cursor

我正试图自己调试一个问题.如果我失败,可以稍后发布;-)

我的logcat日志说明 "android.database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 2"

我想log.v("desc", cursor)用来显示游标返回的内容.有没有办法像游标[0]那样指定一个值?

Som*_*ent 66

Android提供了一个专门用于调试游标的类.它被称为DatabaseUtils.

调用方法dumpCursorToString()来查看游标的内容.

这个助手遍历并打印出Cursor的内容,并将光标返回到原始位置,这样就不会弄乱你的迭代逻辑.


Sha*_*shi 49

以前用这个 cursor.moveToFirst()

Log.v("Cursor Object", DatabaseUtils.dumpCursorToString(cursor))
Run Code Online (Sandbox Code Playgroud)

  • +导入android.database.DatabaseUtils; (2认同)

Gaw*_*cio 12

如果您打算逐行将游标内容写入logcat,可以使用如下代码:

if (cursor.moveToFirst()) {
    do {
        StringBuilder sb = new StringBuilder();
        int columnsQty = cursor.getColumnCount();
        for (int idx=0; idx<columnsQty; ++idx) {
            sb.append(cursor.getString(idx));
            if (idx < columnsQty - 1)
                sb.append("; ");
        }
        Log.v(TAG, String.format("Row: %d, Values: %s", cursor.getPosition(), 
            sb.toString()));
    } while (cursor.moveToNext());
}
Run Code Online (Sandbox Code Playgroud)


Gaw*_*cio 6

你有没有打电话moveToFirst()给Cursor?