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