Répétition à chaque ouverture de mon appli android

Résolu/Fermé
rapidegoyes Messages postés 70 Date d'inscription samedi 22 février 2020 Statut Membre Dernière intervention 1 septembre 2023 - Modifié le 30 mars 2020 à 09:29
BunoCS Messages postés 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 - 31 mars 2020 à 09:30
Bonsoir à tous

J'ai repris mon projet pour android sur mobile.
J'ai un problème de répétition des données à chaque ouverture de l'appli.
Je pensais palier à cette répétition mais je n'y arrive pas!

Un grand merci pour votre aide
rapidegoyes

Voici mon code qui engendre cela:
package com.example.CongelBahut1;

import android.app.Activity;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import android.database.Cursor;
import android.widget.Toast;


public class Affichage1 extends Activity {
    MaBaseSQLite bdd;
    Button enregistrer;
    Button affiche_data;

    public Affichage1() {
    }

    @Override
    //constructeur rempli
    public String toString() {
        return "Affichage1{}";
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.affichage1);
        enregistrer = (Button) findViewById(R.id.enregistrer);
        affiche_data = (Button) findViewById(R.id.affiche_data);
       // Ajoutdata();

        //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, 2, HM");
        Viandes decoupe1 = new Viandes("veau, roulé, 2, BG");
        Viandes decoupe2 = new Viandes("poirreaux, coupé, 8, MG");

        // insertion d'une viande
        bddViandes.insertViandes(decoupe);
        bddViandes.insertViandes(decoupe1);
        bddViandes.insertViandes(decoupe2);

        bddViandes.removeViandesWithdID(decoupe.getId());

//*****************************Toast*******************************************************************************
      Viandes decoupePourBdd = bddViandes.getViandesWithTitre(decoupe.getType()); // pour affichage dans le toast

        if (decoupePourBdd != null)
        {
            Toast.makeText(this, decoupePourBdd.toString(), Toast.LENGTH_LONG).show();
        }
//*************************fin du Toast***************************************************************************
        //recuperation du listview present dans mon IHM
        ListView lv = this.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_single_choice, data,
                        new  String[] {"TYPE"}, new int[] {android.R.id.text1});

        lv.setAdapter(adapter);


       


    } // fin oncreate

      

}// fin classe Affichage1
A voir également:

2 réponses

BunoCS Messages postés 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 3 894
30 mars 2020 à 09:32
Hello,

A chaque fois que tu affiches ton Activity, tu fais des insert() mais jamais de remove()
1
rapidegoyes
30 mars 2020 à 21:14
Bonsoir,

Tu as raison, le problème c'est que je veux conserver les données. J'aimerai simplement en rajouter pour garnir d'avantage ma BDD.
Quel serait le meilleur moyen pour y parvenir?

Merci cordialement rapidegoyes
0
BunoCS Messages postés 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 3 894
31 mars 2020 à 09:30
Généralement, lorsque l'on veut afficher des données provenant d'une base, on fait comme suit :

- récupération des données dans la base
- si les données ne sont pas présentes
- récupérer les données du serveur (pas adapté dans ton cas, a priori)
- les insérer en base

0