CursorLoader, obtenez URI pour la base de données locale

Je suis un programmeur Android novice et j'ai récemment suivi un didacticiel qui montre comment créer une base de données SQLite locale, puis accéder à la base de données en utilisant SQLiteDatabase.rawQuery pour renvoyer un curseur. Je souhaite modifier mon application pour utiliser CursorLoader, ce qui est apparemment une meilleure façon d'accéder à la base de données. Mon problème est que le constructeur CursorLoader s'attend à ce qu'un URI soit donné. Est-ce que je viens d'entrer "file: /// [chemin vers db]"? Il semble un peu désordonné.

  • Détecter les langues installées pour la reconnaissance hors ligne
  • Android: Comment puis-je mettre à jour mon textView dans un fragment
  • Comment augmenter la taille de transport.dump de 256 octets à 512 octets ou plus dans KSOAP2?
  • Les appareils Android ont-ils une adresse IP statique?
  • La classe interne du fragment devrait être statique
  • Impossible d'instancier Fragment
  • Mesurer le temps de démarrage de l'application Android
  • Htmlunit sur l'application Android
  • Définir la barre de menus de Background & Persistence d'Android - L'utilisation d'un attribut sur les anciennes versions provoque un crash - Existe-t-il une approche thème / modèle?
  • Quelle est la meilleure approche pour télécharger 1000+ enregistrements sur un serveur qui contient également des images pour chaque enregistrement depuis une application iOS / Android?
  • Impossible d'instancier l'application com.android.tools.fd.runtime.BootstrapApplication? Android
  • Ignorer OnItemSelectedListener déclencher sur créer
  • 2 Solutions collect form web for “CursorLoader, obtenez URI pour la base de données locale”

    La raison pour laquelle le chargeur de curseur accepte un URI est qu'il s'attend à interroger un contenuProvider et non une base de données brute.

    Je vous suggère donc de créer un fournisseur de contenu qui utilise votre base de données en interne pour pouvoir utiliser directement la classe CursorLoader.

    L'avantage d'utiliser un fournisseur de contenu est qu'il permet d'améliorer vos données et que vous pouvez facilement exploiter beaucoup d'apis à partir d'Android directement.

    Voici quelques guides sur la façon de créer un fournisseur de contenu

    http://developer.android.com/guide/topics/providers/content-provider-creating.html

    http://thinkandroid.wordpress.com/2010/01/13/writing-your-own-contentprovider/

    Si vous choisissez de ne pas créer un ContentProvider, vous pouvez étendre AsyncTaskLoader ou le chargeur de curseur directement pour interroger les données comme vous le souhaitez.

    Jetez un oeil à la bibliothèque LoaderEx de CommonsWare . Il vous permet d'utiliser un Loader avec une base de données SQLiteDatabase , de sorte que vous ne devez pas vous préoccuper de créer votre propre ContentProvider .

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.