【问题标题】:Android move backward among the recordsAndroid 在记录之间向后移动
【发布时间】:2012-05-12 21:42:21
【问题描述】:

我正在使用光标找出最大 id 编号,然后我需要回到该记录的 5 处。比如我在id=9,我想去id=5,怎么办? 我试过了

int position=cursor.getPosition();  
cursor.moveToPosition(position-5);

但是,它给出了一个错误

 ID  TITLE     FOLDER   PARENT
    1   folder1      1        0
    2   item1        0        1
    3   item2        0        1
    4   folder2      1        1
    5   item1        0        4
    6   item2        0        4
    7   folder3      1        4
    8   item1        0        7
    9   item2        0        7

Cursor cursor = db.rawQuery("SELECT id,title,folder,parent FROM mydata WHERE" + "id = (SELECT MAX(id) FROM mydata); ",null);

【问题讨论】:

  • 请发布错误logcat。如果position - 5 大于零,则有其他问题。
  • position 总是返回 0,即使 id=9,并且 (0-5) 返回 false 值。
  • “它给出错误”是没有意义的,除非你提供错误。我们无法从这里看到您的屏幕;如果您不向我们提供信息,我们将无法使用它来帮助您。当您输入“错误”一词时,您应该输入的接下来的内容就是您遇到的确切错误,包括任何错误消息的确切文本。

标签: android sqlite android-cursor


【解决方案1】:

你可以试试:

cursor.moveToPosition(cursor.getCount() - 5);

这假设光标中至少有 5 个项目。

更新

您只是请求具有最高 id 行的详细信息。

要获取您的原始请求,请尝试以下查询:

SELECT id,title,folder,parent FROM mydata

使用上面的代码建议。

【讨论】:

  • 你的光标大小为零?然后你的select语句没有找到任何结果,开始在那里挖或者如果你想不通就贴出来。
  • Cursor cursor = db.rawQuery("SELECT id,title,folder,parent FROM mydata WHERE " + "id = (SELECT MAX(id) FROM mydata ); ",null);这是我的光标,位置编号始终为 0。
  • 如果我使用这个 -> SELECT id,title,folder,parent FROM mydata 它去第一条记录,我想对面
  • 现在您是否尝试使用cursor.moveToPosition(cursor.getCount() - 5); 移动光标?您只想检索一行还是移动到这一行?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-23
相关资源
最近更新 更多