문제

After querying the data I wanted, I now have a cursor holding all the data, presented to the user in a Listview.

When a user clicks an item in order to edit it, I move the cursor to the right position cursor.moveToPosition(pos), from which I can get all the item's data I need: ID, Title, Folder or not, Parent folder.

Now that I have the Parent folder ID, how can I use it in order to get the title of the item's folder so I can show the user in what folder the item is currently in? I can't use move to position because I don't know the parent position, only its ID.

Here's an example of the db.

FOLDER column -> 0 = not a folder (false), 1 = a folder (true)

PARENT column -> holds the ID of its folder

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

Example: User edits item3. I move the cursor to position 2 (starting from 0). I get item3 parent, which is ID=1. How can I get the TITLE of ID=1.

Hope it's clear enough :) Thank you!

도움이 되었습니까?

해결책

You can either loop through the cursor again checking each id to see if it is 1 and then get the title.

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

Or you can issue a new query where id = 1.

다른 팁

You could use:

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

That will give you the value in the column "TITLE" in the row the cursor is currently pointing to.

In your query you can include a JOIN to load the parent's title as another column in your ResultSet, and later retrieve it without need to do another query or iterate the Rs one more time.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top