2011-11-05 107 views
4

查询我想要的数据后的一个排,我现在有一个光标保存所有的数据,呈现给在ListView用户。移动光标被列

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

现在,我有父文件夹ID,我如何使用它,以获得该项目的文件夹的标题,所以我可以显示在用户文件夹什么目前产品吗? 我不能使用移动到的位置,因为我不知道父母的位置,只有它的ID。

这里的分贝的例子。

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 

示例: 用户编辑项目3。我将光标移到位置2(从0开始)。我得到item3父母,这是ID = 1。我如何获得ID = 1的TITLE?

希望这是很清楚:) 谢谢!

回答

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

+0

谢谢,我害怕这些是我唯一的选择:)我想我会使用第二个...(就像我用它打开文件夹一样)应该更快。 –

+1

使用'(!cur.isAfterLast())'而不是'(cur.isAfterLast()== false)'更好。无论如何,它解决了我遇到的问题,那不是这个。 –

0

你可以使用:

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

这会给你的光标当前指向行中的列“TITLE”的值。

+0

nope ..这会给我所选项目的标题。我想要所选项目父项的标题(在我的示例中为folder1) –

0

在查询中可以包含一个JOIN加载父母的标题在你的ResultSet另一列,并在以后检索,而不需要再做一次查询或重复R一次。