4

必要なデータをクエリした後、すべてのデータを保持するカーソルが表示され、Listview でユーザーに表示されます。

ユーザーがアイテムを編集するためにクリックすると、カーソルを正しい位置に移動しますcursor.moveToPosition(pos)。そこから、必要なすべてのアイテムのデータを取得できます: ID、タイトル、フォルダーかどうか、親フォルダー。

親フォルダー ID を取得したので、それを使用してアイテムのフォルダーのタイトルを取得し、アイテムが現在どのフォルダーにあるかをユーザーに表示するにはどうすればよいですか? 親の位置がわからず、その ID しかわからないため、移動先の位置を使用できません。

db の例を次に示します。

FOLDER列 -> 0 = フォルダーではない (false)、1 = フォルダー (true)

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 から開始) に移動します。ID=1 の item3 の親を取得します。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 に答える