查看 Android 数据库游标

Posted

技术标签:

【中文标题】查看 Android 数据库游标【英文标题】:Viewing an Android database cursor 【发布时间】:2011-05-13 06:26:27 【问题描述】:

有人知道在调试期间如何查看游标中的内容,以便确定数据库助手的功能吗?

它一直表现得像在返回数据,但是当我尝试使用 cursor.isNull(0) 方法时,我一直在抛出 NullPointerException 并且在单步执行时无法看到光标中的内容是真的让我很沮丧。

任何帮助将不胜感激。

谢谢。

【问题讨论】:

你能改变接受的答案吗? 【参考方案1】:

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

调用DatabaseUtils.dumpCursorToString(cursor)方法查看光标的内容。

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

【讨论】:

这是因为这是唯一的答案,@Skittles 本人在发布此答案 2 年前发现了有关 DatabaseUtils 的信息。 + 导入android.database.DatabaseUtils;【参考方案2】:

如果这是空指针异常,那么您的光标似乎确实为空。

我会使用Log.d() 来帮助调试我的游标,您可以简单地创建一个辅助方法来将您的游标的整行转储到 LogCat。

【讨论】:

好的...所以,当我尝试这样做时; Log.d("Activity.cursor", "col 0:" + cursor.getLong(0));它崩溃了。当我尝试这个时; Log.d("Activity.cursor", "col 0:" + cursor.getCount());它说 col 0: 1 它怎么可能是空的? 我想我找到了我需要的答案。显然有一个非常棒的类,它可以让我以哈希表的形式查看确切的光标内容。 DatabaseUtils.dumpCursor(光标);无论如何,感谢您的帮助,xandy。 :) 吃喝玩乐!您使用 DatabaseUtils.dumpCursor(cursor) 方法(或 Log.d("TAG", DatabaseUtils.dumpCursorToString(cursor))) 的建议非常棒,我想说一个比目前接受的更好的答案!我认为您应该自己回答这个问题,并将其作为公认的答案。我会投票赞成! :)

以上是关于查看 Android 数据库游标的主要内容,如果未能解决你的问题,请参考以下文章

Android重新使用游标

Android SQL 游标

如何在android中使用游标(sqlite查询)搜索数据库

游标在 Android 开发中有啥用?

SQLite Android数据库游标窗口分配2048 kb失败

如何使用游标从sqlite android中的多个列中获取数据