4

在查询了我想要的数据后,我现在有了一个光标,其中包含所有数据,并在 Listview 中呈现给用户。

当用户单击一个项目以进行编辑时,我将光标移动到正确的位置cursor.moveToPosition(pos),从中我可以获取我需要的所有项目数据:ID、标题、文件夹与否、父文件夹。

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

这是 db 的示例。

FOLDER列 -> 0 = 不是文件夹(假),1 = 文件夹(真)

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 父级,即 ID=1。如何获得 ID=1 的 TITLE。

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

4

3 回答 3

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。

于 2011-11-05T21:34:42.040 回答
0

你可以使用:

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

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

于 2011-11-05T21:15:52.090 回答
0

在您的查询中,您可以包含一个 JOIN 以将父级的标题加载为 ResultSet 中的另一列,然后在不需要执行另一个查询或再次迭代 Rs 的情况下检索它。

于 2012-12-07T12:42:54.787 回答