Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 将光标移动到其中一列旁边的行_Android_Sqlite_Cursor_Android Cursor - Fatal编程技术网

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

Android 将光标移动到其中一列旁边的行,android,sqlite,cursor,android-cursor,Android,Sqlite,Cursor,Android Cursor,查询完我想要的数据后,我现在有了一个游标,它保存了所有的数据,并以Listview的形式呈现给用户 当用户单击某个项目进行编辑时,我会将光标移动到正确的位置cursor.moveToPosition(pos),从中我可以获得所需的所有项目数据:ID、标题、文件夹或否、父文件夹 现在我有了父文件夹ID,如何使用它来获取项目文件夹的标题,以便向用户显示项目当前所在的文件夹? 我不能使用“移动到位置”,因为我不知道父位置,只知道它的ID 下面是db的一个示例 文件夹列->0=不是文件夹(false),

查询完我想要的数据后,我现在有了一个游标,它保存了所有的数据,并以Listview的形式呈现给用户

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

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

下面是db的一个示例

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

PARENTcolumn->保存其文件夹的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
例如: 用户编辑项目3。我将光标移动到位置2(从0开始)。我得到item3父项,它的ID=1。如何获得ID=1的标题

希望这足够清楚:) 谢谢大家!

您可以使用:

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

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

您可以再次循环光标,检查每个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的位置发出一个新查询。

在查询中,您可以包含一个联接,以将父项的标题作为结果集中的另一列加载,然后检索它,而无需再执行另一个查询或重复Rs一次。

否。。这将为我提供所选项目的标题。我想要所选项目的父项的标题(在我的示例中为folder1)谢谢,我担心这是我唯一的选项:)我想我将使用第二个。。。(就像我用它打开文件夹一样)应该更快。使用
(!cur.isAfterLast())
比使用
(cur.isAfterLast()==false)
更好。不管怎样,它解决了我遇到的问题,而不是这个问题。