Mueva el cursor a la fila por una de las columnas

Después de consultar los datos que quería, ahora tengo un cursor que contiene todos los datos, presentados al usuario en un ListView.

Cuando un usuario hace clic en un elemento para editarlo, muevo el cursor a la posición correcta cursor.moveToPosition(pos) , desde el cual puedo obtener todos los datos del elemento que necesito: ID, título, carpeta o no, carpeta principal.

Ahora que tengo el ID de carpeta principal, ¿cómo puedo usarlo para obtener el título de la carpeta del elemento para que pueda mostrar al usuario en qué carpeta está actualmente el elemento? No puedo utilizar el movimiento a la posición porque no sé la posición del padre, solamente su identificación.

He aquí un ejemplo del db.

FOLDER columna -> 0 = no es una carpeta (false), 1 = una carpeta (true)

Columna PARENT -> contiene el ID de su carpeta

 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 

Ejemplo: El usuario edita el elemento3. Muevo el cursor a la posición 2 (a partir de 0). Tengo el padre de item3, que es ID = 1. ¿Cómo puedo obtener el TÍTULO de ID = 1.

Espero que sea lo suficientemente claro 🙂 Gracias!

3 Solutions collect form web for “Mueva el cursor a la fila por una de las columnas”

Puede recorrer el cursor otra vez comprobando cada id para ver si es 1 y luego obtener el título.

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

O puede emitir una nueva consulta donde id = 1.

Usted podría usar:

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

Esto le dará el valor en la columna "TITLE" en la fila que el cursor está apuntando actualmente.

En su consulta puede incluir un JOIN para cargar el título del padre como otra columna en su ResultSet, y más tarde recuperarlo sin necesidad de hacer otra consulta o iterar los Rs una vez más.

  • E / SQLiteLog (1893): (14) no puede abrir archivo en la línea 30176 de
  • Cambio de valores desde Cursor mediante SimpleCursorAdapter
  • Android - ¿Cuándo insertaOrThrow () lanzar una excepción?
  • La base de datos SQLite de Android se corrompe
  • Android busca base de datos SQLite en el teléfono
  • El incremento automático de SQLite no funciona
  • ¿Es posible hacer una consulta sin procesar en la base de datos de metales de Android de meta sqlite?
  • Acceso directo android, acceso db lanzador
  • Comprobación del resultado de rawQuery de Android
  • Android obtener la imagen de disco de base de datos es malformado (código 11) error
  • Sqlite sincrónico
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.