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é.

  • QPython ou Kivy pour la programmation Android avec PAKON - installable apk
  • Android ACTION_IMAGE_CAPTURE Intention
  • Comment enregistrer et récupérer Date dans SharedPreferences
  • Comment obtenir le nom d'utilisateur, le téléphone et le courrier électronique de PayPal Mobile Payment Library
  • Pourquoi devrions-nous utiliser sp pour les tailles de police dans Android?
  • Processus Android audio pour syntoniseur de guitare
  • TimePicker dans PreferenceScreen
  • Comment construire un lecteur RSS pour Android?
  • Gers désérialisation de List <String> dans realmList <RealmString>
  • Google AppInvites break build
  • Comment obtenir les éléments sélectionnés à partir de la liste de sélection multi sélection
  • JQuery Mobile + PhoneGap pour Android - Erreur lors du chargement index.html
  • 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.