Android tuto : Afficher des données d'une base Sqlite dans une ListView en utilisant CursorAdapter

Le tutoriel suivant permet juste d'afficher les données d'une base interne SQLite dans une ListView, si vous voulez apprendre   à créer et gérer une base de données interne SQLite avec toute les opérations nécessaires vous devez suivre cette série : Android SQLite




L'objectif de ce tutoriel est d'obtenir des données d'une base de données SQLite en utilisant la classe SimpleCursorAdapter (sur-couche du CursorAdapter permettant de lier un modèle XML aux données) et d'attacher ces données à une  ListView. Dans cet exemple, nous créons une base de données de pays, et nous allons  insérer certains pays quand l'activité commence. Après cela, nous créons un SimpleCursorAdapter et l'attacher au curseur "cursor" fourni en résultat de la requête de sélection de la base de données. Les colonnes de données retournées par le curseur sont alors mappé à notre vue personnalisée pour l'affichage.
C'est quoi "cursor"? :Cette interface offre un accès aléatoire en lecture-écriture à l'ensemble de résultats retourné par une requête de base de données.
Notre table nommée Country dans cette base de données nommée World aura cette forme:

id
code
name
continent
region
1
TN
Tunisia
Africa
Maghreb

Créez un nouveau projet avec Android Studio.
Remplissez les détails et le nom de votre  projet.
Nom de l'application: Listsqlite
Nom du package: com.tuto.listsqlite
Avant d'aller plus loin, vous avez besoin de créer votre classe de pays (Country) avec toutes les méthodes getter et setter pour faire de chaque  pays unique  un objet.(Il s'agit de la classe Pojo).
Créer une nouvelle classe avec le nom de Country.java et mettez ce code :

Maintenant dans votre layout activity_main.xml mettez ce code:
Après ceci il faut créer un nouveau fichier xml (layout_country_info.xml) dans le dossier layout qui permet de personnaliser les items de notre ListView : 


Maintenant il faut créer une nouvelle classe CountriesDbAdapter.java  qui hérite de la classe SQLiteOpenHelper :
Il reste maintenant de s’intéresser à notre activité principale MainActivity.java :

Commentaires

  1. je veux savoir coment supprimer lorsque on clique jai essyer de faire rien?? ca marche pas

    RépondreSupprimer
    Réponses
    1. Il existe déjà une méthode dans la classe DataBaseHelper qui permet de supprimer tous les pays" public boolean deleteAllCountries()".
      Il suffit de créer un bouton dans le MainActivity et appeler cette méthode dans la méthode onClick() du bouton

      Supprimer
    2. non je voulais un seul pays dans tout les cas jai fait mais est que vous avez une methode d'une facon dynamique
      ???

      Supprimer
    3. Essayes celle là dans la classe DataBaseHelper avec modification du nécessaire :
      public void deleteCountry(Country c) {
      SQLiteDatabase db = this.getWritableDatabase();
      db.delete(SQLITE_TABLE , KEY_CODE + " = ?",
      new String[] { String.valueOf(c.getCode()) });
      db.close();
      }

      Supprimer
  2. merci j'ai utilise public void delete(String id) {

    mDb.delete(SQLITE_TABLE, KEY_ROWID + "=" + id, null);

    }
    merci de toute facon jai termine l'application voici la vid https://www.youtube.com/watch?v=_ZzU--ykgcE il me reste que la creation des table de facon dynamique merci pour la reponse

    RépondreSupprimer
  3. Ce commentaire a été supprimé par un administrateur du blog.

    RépondreSupprimer
  4. J'ai une erreur du genre : column '_id' does not exist
    Peut tu m'aider?

    RépondreSupprimer

Enregistrer un commentaire

Your comment will be reviewed by moderators

Posts les plus consultés de ce blog

Premier tutoriel avec Arduino et Proteus ISIS

Login et password ,formulaire d'authentification sous android avec mysql et json

Connexion d'une application Android et une base de données externe Mysql avec web services php Json (opérations CRUD)