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

时间:2010-06-23 20:02:28

标签: android database cursor

我正在尝试自己调试问题。如果我失败,可以稍后发布; - )

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

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

5 个答案:

答案 0 :(得分:61)

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

调用方法dumpCursorToString()以查看光标内容。

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

答案 1 :(得分:43)

cursor.moveToFirst()

之前使用此功能
Log.v("Cursor Object", DatabaseUtils.dumpCursorToString(cursor))

答案 2 :(得分:10)

如果您打算逐行将游标内容写入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());
}

答案 3 :(得分:5)

你有没有在Cursor上调用moveToFirst()

答案 4 :(得分:0)

或者,如果您正在寻找光标在特定时间点的位置,请致电Cursor.getPosition()

查看Cursor API

这通常很罗嗦,但有时它会有所帮助。