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!

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.

  • Android rawQuery - ¿Hay una manera de usar "IN" parametrizada para una colección de datos
  • ¿Cómo insertar datos en la base de datos SQLite en android?
  • Código de error SQLite de Android 21
  • Cómo incrementar el campo en la base de datos sqlite android
  • Inserte un número de cadena que empiece por cero en la columna de cadena usando ContentValues, pero el cero inicial siempre se elimina
  • Cómo almacenar la base de datos sqlite directamente en sdcard
  • ¿Es mi consulta sqlite equivocada?
  • Crear base de datos SQLite en android
  • Utilizar SQLite Trigger para actualizar el campo "LastModified"
  • Cómo utilizar rawQuery para insertar un registro
  • "Código de error 5: la base de datos está bloqueada" cuando se utiliza un ContentProvider
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.