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.
- SQLiteOpenHelper onUpgrade () Confusión Android
- Sqlite Browser no responde mientras inserta datos en sqlite
- SQLiteException Error desconocido
- ¿Por qué fue InsertHelper obsoleta?
- ¿Cómo realizar una consulta SQLite dentro de una aplicación de Android?
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!
- ¿Cómo insertar valores dobles y flotantes en sqlite?
- Cómo formatear la cláusula WHERE y '?' En una consulta SQLite?
- No pudo leer la fila 0, la columna -1
- Utilizando un botón para exportar sqlite db a un archivo excel-readable (quizás csv)?
- ¿Sqlite "inserta o reemplaza" trabajo con AUTOINCREMENT clave primaria?
- Alterar el campo único de la tabla
- Insertar matriz en la base de datos SQLite en android
- Los datos se rellenan de la fecha de una tabla en particular en lugar de toda la tabla en sqlite
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.
- ¿Hay alguna herramienta para proteger una aplicación de malware aún más que los permisos otorgados en Android?
- ¿Es posible configurar el fondo de pantalla tal como se hace con la aplicación que viene con Android?