将光标移动到其中一列的行

时间:2011-11-05 21:11:58

标签: android sqlite cursor android-cursor

查询了我想要的数据后,我现在有一个光标保存所有数据,并在Listview中显示给用户。

当用户点击某个项目进行编辑时,我将光标移动到正确的位置cursor.moveToPosition(pos),从中我可以获得所需的所有项目数据:ID,Title,Folder or not,Parent文件夹中。

现在我有父文件夹ID,如何使用它来获取项目文件夹的标题,以便我可以在项目当前所在的文件夹中显示用户? 我不能使用移动到位置因为我不知道父位置,只知道它的ID。

这是db的一个例子。

文件夹列 - > 0 =不是文件夹(false),1 =文件夹(true)

PARENT 列 - >保留其文件夹

ID
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

实施例: 用户编辑item3。我将光标移动到位置2(从0开始)。我得到item3 parent,ID = 1。如何获得ID = 1的标题。

希望它足够清楚:) 谢谢!

3 个答案:

答案 0 :(得分:4)

您可以再次循环浏览光标,检查每个id是否为1,然后获取标题。

cur.moveToFirst();
while (cur.isAfterLast() == false) {
  if (cur.getInt(cur.columnIndex("ID") == 1) {
      String title = cur.getString(cur.columnIndex("TITLE"));
  }       
  cur.moveToNext();
}

或者您可以发出id = 1的新查询。

答案 1 :(得分:0)

您可以使用:

yourCursor.getString(yourCursor.columnIndex("TITLE"));

这将为您提供光标当前指向的行中“TITLE”列中的值。

答案 2 :(得分:0)

在您的查询中,您可以包含一个JOIN,将父标题加载到ResultSet中的另一列,稍后检索它而无需再执行其他查询或再次迭代Rs。