android – Cursor.moveToNext()返回false,而Cursor.getCount()表示超过1行

android – Cursor.moveToNext()返回false,而Cursor.getCount()表示超过1行,第1张

概述我在我的Sqlite DB中运行查询.. 我将结果保存在我的Cursor中,并且我正在迭代它以获得所有结果.. allotugh我正在检查并看到光标有超过1行,它只给我第一行,因为moveToNext()总是返回false. 这是我的迭代代码: Cursor cursor = getEventsDetails(db, selection, null); Log.e("c 我在我的sqlite DB中运行查询..

我将结果保存在我的Cursor中,并且我正在迭代它以获得所有结果..

allotugh我正在检查并看到光标有超过1行,它只给我第一行,因为movetoNext()总是返回false.

这是我的迭代代码:

Cursor cursor = getEventsDetails(db,selection,null);              Log.e("cursor before","count"  + cursor.getCount());boolean movetoNext = cursor.movetoFirst();if (movetoNext){    do     {                                       //Create a new PicoEvent instance with the event's details        PicoEvent event = PicoEventCreator.createPicoEvent(cursor);                 Log.e(event.getname(),event.getStartTime().tolocaleString());        Log.e("cursor in","count"  + cursor.getCount());        movetoNext = cursor.movetoNext();        Log.e("movetoNext","move: " + movetoNext);        if (!isEventExists(eventsList,event))            eventsList.add(event);    } while (movetoNext);}

这是Logcat调试:

12-01 17:33:07.774: E/cursor before(5950): count412-01 17:33:08.094: E/Pico Demo Event(5950): 1 בדצמ 2013 11:00:0012-01 17:33:08.124: E/cursor in(5950): count412-01 17:33:08.124: E/movetoNext(5950): move: false

正如你所看到的行数是4,但这一举动是错误的……

解决方法 您正在将此Cursor传递给此调用中的另一个方法:

PicoEvent event = PicoEventCreator.createPicoEvent(cursor);

我敢打赌,该方法是在光标返回之前将光标推进到最后.

总结

以上是内存溢出为你收集整理的android – Cursor.moveToNext()返回false,而Cursor.getCount()表示超过1行全部内容,希望文章能够帮你解决android – Cursor.moveToNext()返回false,而Cursor.getCount()表示超过1行所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1125055.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存