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 :

Déclencher une action une seule fois


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 606
    Par défaut Déclencher une action une seule fois
    Bonjour,
    J'ai une base de donnée et je voudrais ajouté des éléments une seul fois dans la base par exemple lorsque la base de donnée est crée ou que l'application est installé.
    En gros je veux que quand l'utilisateur ouvre l'application il y ai déjà des éléments dedans, il peut les supprimés s'il le souhaite et quand il quitte l'application et la ré-ouvre
    il ne doit pas avoir les éléments qui reviennent s’ajoute dans la base. (Et s'il désinstalle l'application et la réinstalle, les éléments se rajoutent dans la base).
    Y-a-t-il moyen de faire ca simplement ?

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

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

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    En utilisant sqliteopenhelper : http://developer.android.com/referen...penHelper.html

    Et plus particulièrement la méthode oncreate dans ton cas qui n'est executé qu'à la création de la base.

    Il suffit de dériver de SQLiteOpenHelper et d'appeler super() dans ton constructeur en spécifiant le numéro de version et le nom de ta base. Tu peux ensuite utiliser les méthodes onCreate() , onUpgrade(), onOpen()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    public class DBHelper extends SQLiteOpenHelper {
      private static final String DB_NAME = "mabase.db";
      private static final int DB_VERSION = 1;
     
      public DBHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
      }
     
      @Override
      public void onCreate(SQLiteDatabase database) {
        //executer les requêtes nécessaires
      }
     
    }
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 606
    Par défaut
    Bonjour,

    J'ai fais ca mais j'obtiens une erreur: getDatabase called recursively

    Base de donnée.class

    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
    public class Tache_BDD extends SQLiteOpenHelper {
     
        int v ; // version
        String nomDeLaBaseDeDonnee;
     
        public Tache_BDD(Context context, String name, SQLiteDatabase.CursorFactory factory, int version)
        {
            super(context,name,factory,version);
            Log.i(tag, "Constructeur");
     
            v = version;
            nomDeLaBaseDeDonnee = name;
     
        }
        @Override
        public void onCreate (SQLiteDatabase db)
        {
            Log.i(tag, "Création");
            db.execSQL(CREATE_BDD);
            if (v == 1 && nomDeLaBaseDeDonnee == "Tache_BDD")
            {
               //les requêtes nécessaires
            }
            Log.i(tag, "Fin de création");
        }
    MainActitivy.class
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public class MainActivity extends ListActivity  implements Dial.InterfaceSupprime {  //Observer {
     
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
     
            t_bdd = new Tache_BDD(this.getApplicationContext(),"Tache_BDD",null,1) ; // Création de la bas de donnée.
      }

Discussions similaires

  1. exécuter une macro 1 seule fois par semaine ?
    Par deby23 dans le forum VBA Access
    Réponses: 9
    Dernier message: 20/12/2012, 11h22
  2. [PHP 5.3] je cherche à faire appel à une fonction 1 seul fois
    Par geforce dans le forum Langage
    Réponses: 1
    Dernier message: 23/05/2010, 14h16
  3. Réponses: 4
    Dernier message: 04/12/2009, 12h18
  4. Réponses: 1
    Dernier message: 03/11/2009, 12h28
  5. déclencher une action à une heure précise
    Par thor76160 dans le forum C#
    Réponses: 2
    Dernier message: 05/09/2009, 15h06

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