Limitar los registros obtenidos en Android (base de datos Sqlite)
Estoy tratando de obtener mensajes SMS de la bandeja de entrada, los elementos enviados y borradores. Me gustaría hacer una paginación para mi lista de vista para que sea imprescindible que busque registros en páginas / trozos.
No estoy familiarizado con sqlite, que es la base de datos que entiendo android uso para almacenar los datos. ¿Puede alguien decirme cómo puedo restringir el número de registros que estoy buscando mediante el uso de contentResolver.query?
- Android NullPointerException al ejecutar la consulta en la base de datos SQLite
- Alterar el campo único de la tabla
- ¿Cómo puedo ordenar mi base de datos SQLITE en orden descendente, para una aplicación de Android?
- Multi claves primarias en Android SQLite
- Enfoque para rellenar la vista de lista expandible con la base de datos SQlite local
Además, ¿cuál es la forma de extraer el archivo de base de datos sqlite en mi máquina y navegar / consultar localmente para experimentar o ver datos en mi máquina?
¿Hay otras maneras mejores de implementar la paginación en android?
Gracias
- WhereArgs Eliminación de la base de datos SQLite
- Android - El archivo de base de datos Sqlite no se elimina mientras se desinstala una aplicación?
- Android Eclipse DDMS - No se puede extraer el archivo del dispositivo enraizado
- ¿Cómo agregar datos iniciales a la base de datos SQLite?
- ¿Cuándo debo guardar datos en SQLite ingresados en un fragmento en mi aplicación de Android?
- ¿Cómo evitar la inserción de duplicados en la base de datos SQLite?
- ¿Soporta Android JDBC?
- Eliminación de fila en SQLite en Android
No parece haber ninguna manera de limitar sus resultados de SmsProvider
. Sin embargo, no debería realmente, dado que utiliza CursorAdapter
y no intenta leer el contenido en sus propias estructuras de datos. ¿Has probado esto?
De acuerdo con el sitio web Sqlite, puede utilizar una cláusula LIMIT … OFFSET … en su consulta:
Para cualquiera que se tropieza con esta respuesta buscando una forma de usar una cláusula LIMIT
con OFFSET
, descubrí de este error que Android utiliza la siguiente expresión regular para analizar la cláusula límite de una consulta:
En framework / base / core / java / android / base de datos / sqlite / SQLiteQueryBuilder.java:
LIMIT se comprueba con el siguiente sLimitPattern.
private static final Pattern sLimitPattern = Pattern.compile("\\s*\\d+\\s*(,\\s*\\d+\\s*)?");
Tenga en cuenta que el regex acepta el formato offsetNumber,limitNumber
aunque no acepta la sentencia OFFSET
directamente.
Para extraer su base de datos para verla, haga una copia de ella en la tarjeta SD y luego use adp pull para obtenerla.