¿Necesito un proveedor de contenido con un cargador de cursor?

Tengo problemas para resolver cómo utilizar un CursorLoader.

El problema que estoy tratando de resolver es cómo mostrar datos de mi base de datos SQLite en un ListActivity. Las filas de lista utilizan un diseño personalizado, por lo que necesitan datos de 3 campos (todos en la misma tabla).

Junto con una cantidad de pregunta de desbordamiento de pila También leí esta entrada del blog y llegó a la decisión que necesitaba para crear un proveedor de contenido para mi base de datos.

Nunca haber utilizado los proveedores de contenido antes de ir a la ayuda de Android sobre cómo hacer esto.

El punto 1 establece:

No necesita un proveedor para usar una base de datos SQLite si el uso está completamente dentro de su propia aplicación.

Así que ahora estoy atascado, no puedo usar un CursorLoader sin un ContentProvider y se me aconseja que no cree un ContentProvider si es para uso solo dentro de mi aplicación.

Actualmente estoy pensando que tal vez la ayuda está fuera de fecha o no estaba pensando en Cursor Loaders cuando se escribió?

¿Tan necesito apenas continuar encendido y crear un ContentProvider de todos modos o hay otra manera de hacer esto? Cualquier consejo será útil!

La respuesta breve es que puede rodar su propio cargador para omitir la necesidad de un proveedor de contenido e interfaz directamente con una base de datos SQLite. Otros ya han realizado la implementación, una de las cuales es realizada por CommonsWare , llamada LoaderEx . Ese proyecto tiene una clase llamada SQLiteCursorLoader que puede ser útil.

Además de las muestras proporcionadas por el proyecto GitHub anterior, puede comprobar una de mis aplicaciones de prueba (también en GitHub) utilizando cargadores sin un proveedor de contenido.

Después de investigar, encontré que un ContentProvider es necesario si usted está utilizando el construido en CursorLoader.

Como dice wsanville, puede rodar su propio cargador para que no necesite un ContentProvider.

Crear un ContentProvider es bastante fácil. Lo suficientemente fácil que no debe estar en su forma de utilizar un CursorLoader. Aquí está un ejemplo rápido de usarlos junto con un simple ContentProvider: http://responsiveandroid.com/2012/03/19/using-an-android-cursor-loader-with-a-content-provider.html

  • SQLite Android asignación de la ventana de cursor de 2048 kb falló
  • EditText afterTextChanged no funciona
  • Encriptación de contraseña de Android SQlite?
  • Cursor finalizado sin cerrar antes () en ListFragment
  • Conexión de SQLite se filtró aunque todo se cerró
  • Android: Cómo sumar todas las columnas de una base de datos SQLite y devolver 1 variable única
  • Actualizar tabla Sqlite si campo de cadena comienza con signo más (+)?
  • NotifyChange con uri modificado de contentProvider.update ()
  • Android SQLite issue - table ... no tiene una columna llamada
  • Sugar ORM lanza excepción NoSuchTable en lollipop
  • Obtener la distancia más corta desde un punto
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.