IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Répétition de lignes à chaque ouverture de la fenêtre concernant ma Bdd


Sujet :

Android

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2009
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 116
    Points : 60
    Points
    60
    Par défaut Répétition de lignes à chaque ouverture de la fenêtre concernant ma Bdd
    Bonsoir,

    j'ai programmé une Base de données à l'aide d'Android Studio.

    Elle fonctionne, mais un problème se présente à l'affichage des données dans ma Listview.

    En effet lorsque je lance mon application pour la première fois une ligne de données
    s'affiche correctement.

    Le problème c'est qu'à chaque réouverture de la fenêtre une ligne des mêmes données se rajoute !!!

    Comment faire pour éviter cela ?

    Voici une partie de mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    public class Affichage1 extends ActionBarActivity {
     
        public Affichage1() {
        }
     
      //  @Override
        public String toString() {
            return "Affichage1{}";
        }
     
        @Override
        protected void onCreate(Bundle savedInstanceState) {
     
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_affichage1);
     
            //Creation d'une instance de la classe GestionBDD(creer la Bdd)
            GestionBDD bddViandes = new GestionBDD(this);
     
            //On ouvre la base de donnees
            bddViandes.open();
     
            //Creation d'une ligne pour une viande
            Viandes decoupe = new Viandes("boeuf", "cote", "4", "BG");
     
            // insertion d'une viande
            bddViandes.insertViandes(decoupe);
     
            //recuperation du listview present dans mon IHM
            ListView lv = (ListView) findViewById(R.id.Afficheliste);
     
            Cursor data = bddViandes.crerColonne(); // appel méthode pour créer l'alias _id
     
             SimpleCursorAdapter adapter =
                    new SimpleCursorAdapter(this, android.R.layout.simple_list_item_1, data,
                            new  String[] {"TYPE"}, new int[] {android.R.id.text1});
     
            lv.setAdapter(adapter);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     public void open()
        {
            //on ouvre la bdd en ecriture
            bdd = maBaseSQLite.getWritableDatabase();
     
        }
     
     
        public SQLiteDatabase getBdd()
        {
            return  bdd;
        }
     
        public long insertViandes(Viandes viandes)
        {
            //creation d'un ContentValues (fonctionne comme une HashMap
            ContentValues values = new ContentValues();
            //On lui ajoute une valeur associee a une clef (qui est le nom de la colonne
            //dans laquelle on veut mettre la valeur.
     
            values.put(COL_TYPE, viandes.getType());
            values.put(COL_ETAT, viandes.getEtat());
            values.put(COL_ENDROIT, viandes.getEndroit());
            values.put(COL_NOMBRE, viandes.getNombre());
     
            //On insere l'objet dans la BDD via le ContentValues
            return bdd.insert(TABLE_VIANDES, null, values);
        }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public Cursor crerColonne()
        {
     
                return bdd.rawQuery("SELECT ID as _id, TYPE FROM table_viandes", null);
        }

    Merci pour toute réponse

    rapidego

  2. #2
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Tu insère une ligne à chaque fois que démarre ton activity :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    bddViandes.insertViandes(decoupe);
    Donc inévitablement , une ligne se rajoute à chaque fois ...
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2009
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 116
    Points : 60
    Points
    60
    Par défaut
    Citation Envoyé par grunk Voir le message
    Tu insère une ligne à chaque fois que démarre ton activity :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    bddViandes.insertViandes(decoupe);
    Donc inévitablement , une ligne se rajoute à chaque fois ...
    Bonsoir
    Merci pour les bons conseils.

    Suite à ta réponse je suis entrain de modifier mon prototype de programme:
    J'ai ajouté un bouton pour effectuer une insertion et un autre bouton pour ouvrir
    et visualiser les données de la Bdd.

    Suite aux conseils que vous me donner mon appli prend forme.

    Autre chose pour insérer toute nouvelle ligne, je recherche une solution
    afin de ne pas avoir besoin de taper au clavier
    les produits à enregistrer lorsque l'on rempli le frigo.

    Quel serait à ton avis le widget le plus adéquat pour telle méthode.

    a plus +++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 22/01/2017, 16h32
  2. Réponses: 4
    Dernier message: 14/05/2015, 15h58
  3. Réponses: 4
    Dernier message: 19/06/2006, 10h09
  4. [HTTPS] ouverture d'une fenêtre
    Par Boosters dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 07/01/2005, 14h08
  5. ouverture de la fenêtre des propriétés afffichage
    Par Mercilius dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 26/03/2003, 17h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo