- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试将表中的所有列查询到一个长 TextView 和/或字符串中。我知道这可能不是做事的正确方法,但我必须这样做。如果我错了,请纠正我,我的印象是下一步会得到行中的下一列:
Cursor c = db.get();
if(c.moveToFirst){
do{
string = c.getString(0);
}while(c.moveToNext);
}
我以为这会获取第一列并显示其所有内容,而不是我获取第一列和第一行。我究竟做错了什么?有没有更好或更实际的方法来获取此信息而不使用 ListView?
最佳答案
简单的用法是:
Cursor cursor = db.query(...);
while (cursor.moveToNext()) {
...
}
moveToFirst 用于在您已经到达某个位置后需要从头开始迭代时使用。
除非需要,否则避免使用 cursor.getCount()。永远不要在 getCount() 上使用循环。
getCount 开销很大——它遍历许多记录来计算它们。它不返回存储的变量。第二次调用可能有一些缓存,但第一次调用在计算之前不知道答案。
如果您的查询匹配 1000 行,游标实际上只有第一行。每个 moveToNext 搜索并找到下一个匹配项。 getCount 必须找到所有 1000 个。如果只需要 10 个,为什么要遍历所有?为什么要迭代两次?
此外,如果您的查询不使用索引,getCount 可能会更慢 - 即使查询只匹配 100 条记录,getCount 可能会超过 10000 条记录。为什么循环 20000 而不是 10000?
关于android cursor.moveToNext()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10081631/
我正在尝试将表中的所有列查询到一个长 TextView 和/或字符串中。我知道这可能不是做事的正确方法,但我必须这样做。如果我错了,请纠正我,我的印象是下一步会得到行中的下一列: Cursor c =
//row --> 2 int row = mCursor.getCount(); for (int i = 0; i < row; i++) { if (mCursor.moveToPositio
为什么我的 Android Cursor 没有一直走到原来“promise”的末尾?? 我的 cursor.getCount() 与我上一个 cursor.getPosition() 不同。检查我的
我偶尔会看到崩溃报告: Fatal Exception: java.lang.IllegalStateException: Couldn't read row 1127, col 0 from Cur
在 Android 应用程序中,您可以使用方法 ContentResolver.query()查询 URI。结果,你得到一个 Cursor 对象,然后你只需执行 Cursor.moveToNext()
由于这个异常,我遇到了几次崩溃,但无法在我自己的任何设备/模拟器上复制它。 来自 google play console 的堆栈跟踪 android.database.CursorWindowAl
boolean android.database.Cursor.moveToNext() 文档说: http://developer.android.com/reference/android/dat
下一段代码会按预期工作吗? Cursor c = db.query(tableName, requestedColumns, condition, conditionParams, n
以下语句 cursor.moveToNext() 始终为 false。我希望循环执行一次。我测试过查询实际上返回了数据。 谁知道这是怎么回事? String query ="SELECT(SE
创建标准 SQLite 游标后,我将使用以下方法遍历条目: while (cursor.moveToNext()) { } 所有行都被正确处理。我读过的所有文档都表明您需要发出 moveToFirst
我整个早上都在 StackOverflow 上尝试自学如何在 Android 应用程序上对我上传的 SQLite 数据库进行查询。我尝试过原始查询和直接查询,但到目前为止都没有奏效。这是代码: pub
我正在我的 Sqlite 数据库中运行查询.. 我将结果保存在我的 Cursor 中,我正在遍历它以获得所有结果.. allotugh 我正在检查并看到游标有超过 1 行,它只给我第一行,因为 mov
我想知道是否可以在 moveToNext() 之前调用 getType() 和 getColumnNames()。 基本上,我正在尝试编写以下辅助函数: public static int getC
我是一名优秀的程序员,十分优秀!