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ébutant] Récupérer le 1er élément d'une liste (aléatoire) pour l'afficher sur une autre activité.


Sujet :

Android

  1. #1
    Membre actif
    Homme Profil pro
    retraité
    Inscrit en
    Janvier 2015
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Janvier 2015
    Messages : 96
    Par défaut [Débutant] Récupérer le 1er élément d'une liste (aléatoire) pour l'afficher sur une autre activité.
    Bonjour,

    J'ai une liste en SQLite de 6 éléments (pour le moment, plus tard 30 à 50 éléments).

    Avec un bouton "add" j'affiche un élément de la liste et j'aimerais récupérer cet élément pour l'afficher dans un TextView (par exemple), d'une 2ème activité.

    En résumé, un clic sur "add" doit m'afficher un mot dans ma 2ème activité.

    Quelqu'un saurait-il me guider un peu pour parvenir à faire cela ?

    Merci d'avance pour votre aide.

  2. #2
    Modérateur
    Avatar de MasterMbg
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 719
    Par défaut
    Bonjour,
    Tu récupères ton information, tu la places dans un Bundle et tu envoies ce Bundle dans l'autre activity lors de son appel. Et dans la deuxième activity, tu récupères le contenu du Bundle et tu l'affiches dans le textview. Théoriquement c'est ça.

    Christian,
    Plus tu apprends sérieusement, plus tu te rapproches d'un savoir noble. Une chose est certaine, les difficultés ne s'écarteront de ton chemin...

    Tu es nouveau dans le développement Android, la page des COURS est là pour te faciliter la vie
    Tu peux trouver la réponse à ta question dans la FAQ
    Retrouvez mon tutoriel sur la consommation des services web SOAP
    Pense à voter positivement en appuyant sur en bas à droite de la réponse qui t'a donné une piste de solution.

  3. #3
    Membre actif
    Homme Profil pro
    retraité
    Inscrit en
    Janvier 2015
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Janvier 2015
    Messages : 96
    Par défaut
    Merci pour la réponse, mais désolé, je ne sais pas faire ...

    J'ai mis la pagaille dans mes codes donc je les ai refaits propres, mais le problème est toujours là. Comment faire pour récupérer le résultat de mon "Random" pour l'afficher ensuite dans ma 2ème activité ?

    Soyez patient, je ne suis pas né avec un smartphone, ni avec un PC, ni avec un minitel...

    A tout hasard, voilà mon code tout propre :
    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
      private Table_MotsDataSource datasource;
     
      @Override
      public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
     
        datasource = new Table_MotsDataSource(this);
        datasource.open();
     
        List<Nom> values = datasource.getAllTable_Mots();
     
        // utilisez SimpleCursorAdapter pour afficher les
        // éléments dans une ListView
        ArrayAdapter<Nom> adapter = new ArrayAdapter<Nom>(this,
            android.R.layout.simple_list_item_1, values);
        setListAdapter(adapter);
      }
     
      // Sera appelée par l'attribut onClick 
      // des boutons déclarés dans main.xml
      public void onClick(View view) {
        @SuppressWarnings("unchecked")
        ArrayAdapter<Nom> adapter = (ArrayAdapter<Nom>) getListAdapter();
        Nom nom = null;
        switch (view.getId()) {
        case R.id.add:
          String[] Table_Mots = new String[] { "Coq", "Canard", "Lapin", "Chien", "Chat", "Cheval" };
          int nextInt = new Random().nextInt(6);
          // enregistrer le nouveau commentaire dans la base de données
         nom = datasource.createMot(Table_Mots[nextInt]);
          adapter.add(nom);
          break;
        case R.id.delete:
          if (getListAdapter().getCount() > 0) {
            nom = (Nom) getListAdapter().getItem(0);
            datasource.deleteNom(nom);
            adapter.remove(nom);
          }
          break;
        }
        adapter.notifyDataSetChanged();
      }
     
      @Override
      protected void onResume() {
        datasource.open();
        super.onResume();
      }
     
      @Override
      protected void onPause() {
        datasource.close();
        super.onPause();
      }
    }

  4. #4
    Modérateur
    Avatar de MasterMbg
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 719
    Par défaut
    Bonjour,
    Stp montre moi dans ton code, l'endroit où tu souhaites appeler l'autre activity, le nom de cette autre activity ainsi que la valeur que tu veux envoyer cette dernière et je t'aiderai à le faire.

    Christian,
    Plus tu apprends sérieusement, plus tu te rapproches d'un savoir noble. Une chose est certaine, les difficultés ne s'écarteront de ton chemin...

    Tu es nouveau dans le développement Android, la page des COURS est là pour te faciliter la vie
    Tu peux trouver la réponse à ta question dans la FAQ
    Retrouvez mon tutoriel sur la consommation des services web SOAP
    Pense à voter positivement en appuyant sur en bas à droite de la réponse qui t'a donné une piste de solution.

  5. #5
    Membre actif
    Homme Profil pro
    retraité
    Inscrit en
    Janvier 2015
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Janvier 2015
    Messages : 96
    Par défaut
    Bonsoir
    Merci pour la réponse.

    J'aimerai que cela se fasse vers la ligne 34, après le random.
    La 2ème activité s'appelle "Question".
    La valeur à envoyer à Question est le résultat de Random.

    Précision:
    Je me suis servi de ce tuto pour monter la SQLite :
    http://vogella.developpez.com/tutori...donnees-sqlite

  6. #6
    Modérateur
    Avatar de MasterMbg
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 719
    Par défaut
    Dans l'activity principale :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Intent i = new Intent(tonActivity.this, Question.class);
    i.putExtra("random", nextInt);
    startActivity(i);
    Dans le onCreate() de l'autre activity (Question)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Bundle donnee = getIntent().getExtras();
    //.........
    tonTextView.setText(""+donnee.getInt("random");
    Christian,
    Plus tu apprends sérieusement, plus tu te rapproches d'un savoir noble. Une chose est certaine, les difficultés ne s'écarteront de ton chemin...

    Tu es nouveau dans le développement Android, la page des COURS est là pour te faciliter la vie
    Tu peux trouver la réponse à ta question dans la FAQ
    Retrouvez mon tutoriel sur la consommation des services web SOAP
    Pense à voter positivement en appuyant sur en bas à droite de la réponse qui t'a donné une piste de solution.

  7. #7
    Membre actif
    Homme Profil pro
    retraité
    Inscrit en
    Janvier 2015
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Janvier 2015
    Messages : 96
    Par défaut
    Pour la base de données, je continue à étudier tout ça, pour la suite de l'application.

    Alors, je me suis "amusé" à adapter vos conseils sur une autre application. Ça fonctionne, je passe bien d'une page (activité) à l'autre. Mais le problème est qu'au lieu de me renvoyer le mot aléatoire, il m'envoie 0.

    Dans le LogCat, pas une erreur sur la console non plus. J'ai essayé des tonnes de combinaisons sans succès.

    Code.java 1ere page
    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
    39
    40
    41
    42
    43
    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.TextView;
     
    public class MainActivity<rando> extends Activity {
     
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
     
            final TextView textOne = (TextView) findViewById(R.id.textView1);    
            Button pushMe = (Button) findViewById(R.id.button1);            
     
     
             final String[] myNames = {"Coq", "Canard", "Lapin", "Chien", "Chat", "Cheval", "Ane", "Cerf", "Bison" };            
                         final int rando  = (int) (Math.random() * 9); // Ecrit ici, cette instruction bloque à 1 click.
     
            pushMe.setOnClickListener(new View.OnClickListener() {
     
        @Override
        public void onClick(View view) {
     
            //int rando  = (int) (Math.random() * 9); // Ecrit ici, cette instruction permet le multiclick
            //textOne.setText(myNames[rando]);    // 1 seul click possible.
     
            TextView textOne = (TextView) findViewById(R.id.textView1);                                      
                     Intent i = new Intent(MainActivity.this, Question.class);                 
     
                            String nextInt = new String();
                                String String = null;
                                i.putExtra("random", String);    
                            startActivity(i);
            }     @Override
                    public String toString() {
                        // TODO Auto-generated method stub
                        return super.toString();
                    }
         });    
      }
    }
    Code 2ème page
    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
    import android.app.Activity;
     
    import android.os.Bundle;
    import android.widget.TextView;
     
    public class Question extends Activity{
            @Override
                    public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState); 
                setContentView(R.layout.question);
               TextView i = (TextView) findViewById(R.id.selection);
     
                Bundle donnee = getIntent().getExtras();            
     
     
                i.setText(""+donnee.getInt("random"));              
     
               }
            }
    Merci pour votre aide

  8. #8
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2014
    Messages : 64
    Par défaut
    Bonjour

    il faudrait indenter le code (sous android studio : sur windows de base ça doit être ctrl + shift + O et linux ctrl +alt + L ).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    @Override
    public String toString() {
    	// TODO Auto-generated method stub
    	return super.toString();
    }
    Tu peux supprimer le code ci-dessus de ton code, ça ne sert à rien.

    Pour ton soucis, activité 1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Intent i = new Intent(MainActivity.this, Question.class); 				
    String nextInt = new String(); // vaut rien et sert à rien, tu ne l'utilises pas
    String String = null; // vaut null, évite aussi d'appeler ta variable avec le même nom que sa class
    i.putExtra("random", String); //attache une chaîne de caractère vide
    startActivity(i);
    correction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Intent i = new Intent(MainActivity.this, Question.class); 				
    String nextInt = myNames[rando]; //on récupére le nom qui correspond au chiffre aléatoire dans ton tableau
    i.putExtra("random", nextInt); //on en fait un extra
    startActivity(i);
    activité 2 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    String mChaine = getIntent.getStringExtra("random"); //on récupère l'extra de l'intent
    J'ai mis quelques explications dans le code, ça devrait t'aider à comprendre

  9. #9
    Modérateur
    Avatar de MasterMbg
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 719
    Par défaut
    Quelques règles de nomenclature des variables à respecter :
    - Le nom d'une variable doit commencer par une lettre minuscule
    - Le nom d'une variable doit refléter au mieux son contenu. Par exemple, évite un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    //cette variable contiendra le nom de l'utilisateur
    String a;
    .

    Sinon, pour le reste le code donne une bonne impression(je n'ai pas testé, lol).

    Christian,
    Plus tu apprends sérieusement, plus tu te rapproches d'un savoir noble. Une chose est certaine, les difficultés ne s'écarteront de ton chemin...

    Tu es nouveau dans le développement Android, la page des COURS est là pour te faciliter la vie
    Tu peux trouver la réponse à ta question dans la FAQ
    Retrouvez mon tutoriel sur la consommation des services web SOAP
    Pense à voter positivement en appuyant sur en bas à droite de la réponse qui t'a donné une piste de solution.

  10. #10
    Membre actif
    Homme Profil pro
    retraité
    Inscrit en
    Janvier 2015
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Janvier 2015
    Messages : 96
    Par défaut
    Bonjour,

    Merci pour votre aide et
    Bravo pour votre patience ....

    Mais, j'arrive toujours avec l'affichage 0, et franchement, j'ai tout tourné dans tous les sens, j'ai même réussi a obtenir "Hello world";

    Désolé de vous ennuyer pour une si petite bétise.

  11. #11
    Modérateur
    Avatar de MasterMbg
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 719
    Par défaut
    Peut être que tu t'y prends mal. Montre nous tout le code on va scruter. Avec commentaires bien sûr pour mieux comprendre ce que tu fais ou tu comptes faire.

    Christian,
    Plus tu apprends sérieusement, plus tu te rapproches d'un savoir noble. Une chose est certaine, les difficultés ne s'écarteront de ton chemin...

    Tu es nouveau dans le développement Android, la page des COURS est là pour te faciliter la vie
    Tu peux trouver la réponse à ta question dans la FAQ
    Retrouvez mon tutoriel sur la consommation des services web SOAP
    Pense à voter positivement en appuyant sur en bas à droite de la réponse qui t'a donné une piste de solution.

  12. #12
    Membre actif
    Homme Profil pro
    retraité
    Inscrit en
    Janvier 2015
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Janvier 2015
    Messages : 96
    Par défaut
    1ère page
    Le but du jeu pour le moment est un tirage aléatoire d'un mot, et dans notre exemple avec des animaux sera d'écrire le nom de l'animal au féminin (cela avec equals ou un truc du genre avec des string, ex: <string =" lapin"> lapine</string>).

    2ème page
    On affiche le nom choisi (aléatoirement), il y aura en-dessous la question écrite qui est commune à une même série (animaux), puis un EditText etc ...

    Pour le moment, après appui sur le bouton, je vois la page qui change, le nom s'inscrire et l'application se ferme. Message :
    Fermeture soudaine del'application 'Random(du processus com.android.random). Merci de réessayer.
    Dans le logCat, j'ai ce message:

    04-28 20:52:49.076: E/AndroidRuntime(406): Caused by: java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
    Code Java 1ère page avec les modifs:
    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
    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.TextView;
     
    public class MainActivity extends Activity {
     
        public static final String[] myNames = null;
        public static final int rando = 0;
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
     
            final TextView textOne = (TextView) findViewById(R.id.textView1);            
            Button pushMe = (Button) findViewById(R.id.button1);            
     
            final String[] myNames = {"Coq", "Canard", "Lapin", "Chien", "Chat", "Cheval", "Ane", "Cerf", "Bison" };    
     
            final int rando  = (int) (Math.random() * 9);
     
            pushMe.setOnClickListener(new View.OnClickListener() {    
     
                @Override    
        public void onClick(View view) {
                    // TODO Auto-generated method stub                
            textOne.setText(myNames[rando]);
     
            Intent i = new Intent(MainActivity.this, Question.class);        
            String nextInt = myNames[rando]; //on récupére le nom qui correspond au chiffre aléatoire dans ton tableau
                i.putExtra("random", nextInt); //on en fait un extra
                startActivity(i);
                }
                });
            }
       }
    Code Java 2ème page avec vos modifs :
    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
    import android.content.Intent;
    import android.os.Bundle;
    import android.widget.TextView;
     
    public class Question extends Activity{
            @Override
                    public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState); 
              setContentView(R.layout.question);         
     
              TextView i = (TextView) findViewById(R.id.selection); 
                 setContentView(i);            
               Bundle donnee = getIntent().getExtras();
                String mChaine = getIntent.getStringExtra("random");
            i.setText(""+donnee.getInt("random"));       
              }
     
            }
    En bricolant, j'arrive à afficher sur la 2ème page l'index du mot correspondant. Y a du mieux mais ce n'est pas encore ça.

    Encore Merci à vous.

  13. #13
    Modérateur
    Avatar de MasterMbg
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 719
    Par défaut
    Bonjour,

    L'erreur vient du fait que tu essaies d'affecter une view à la deuxième activity, alors qu'elle contient déjà une view (conteneur au fait). Supprime la setContentView(i); juste en dessous de la déclaration de ton TextView...

    Christian,
    Plus tu apprends sérieusement, plus tu te rapproches d'un savoir noble. Une chose est certaine, les difficultés ne s'écarteront de ton chemin...

    Tu es nouveau dans le développement Android, la page des COURS est là pour te faciliter la vie
    Tu peux trouver la réponse à ta question dans la FAQ
    Retrouvez mon tutoriel sur la consommation des services web SOAP
    Pense à voter positivement en appuyant sur en bas à droite de la réponse qui t'a donné une piste de solution.

  14. #14
    Membre actif
    Homme Profil pro
    retraité
    Inscrit en
    Janvier 2015
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Janvier 2015
    Messages : 96
    Par défaut
    Citation Envoyé par MasterMbg Voir le message
    L'erreur vient du fait que tu essaies d'affecter une view à la deuxième activity, alors qu'elle contient déjà une view (conteneur au fait). Supprime la setContentView(i); juste en dessous de la déclaration de ton TextView...
    Voilà c'est corrigé. Pour le moment, j'essaye de comprendre pourquoi je n'affiche que Index ID et pas le nom.

    Bon, je n'arrive pas à faire afficher le nom correspondant à l'index.

  15. #15
    Modérateur
    Avatar de MasterMbg
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 719
    Par défaut
    Comment tu t'y prends?

    Christian,
    Plus tu apprends sérieusement, plus tu te rapproches d'un savoir noble. Une chose est certaine, les difficultés ne s'écarteront de ton chemin...

    Tu es nouveau dans le développement Android, la page des COURS est là pour te faciliter la vie
    Tu peux trouver la réponse à ta question dans la FAQ
    Retrouvez mon tutoriel sur la consommation des services web SOAP
    Pense à voter positivement en appuyant sur en bas à droite de la réponse qui t'a donné une piste de solution.

  16. #16
    Membre actif
    Homme Profil pro
    retraité
    Inscrit en
    Janvier 2015
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Janvier 2015
    Messages : 96
    Par défaut
    Citation Envoyé par MasterMbg Voir le message
    Comment tu t'y prends?
    J'ai essayé toutes les formules que vous m'avez données. J'ai essayé de passer par "SELECT ... ORDER BY RANDOM .. " Rien Pourtant je ne dois pas être loin...

    Voilà mon dernier 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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    public class TestDatabaseActivity extends ListActivity {
      private Table_MotsDataSource datasource;
     
      @Override
      public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
     
        datasource = new Table_MotsDataSource(this);
        datasource.open();
     
        List<Nom> values = datasource.getAllTable_Mots();
     
        // utilisez SimpleCursorAdapter pour afficher les éléments dans une ListView
        ArrayAdapter<Nom> adapter = new ArrayAdapter<Nom>(this,
            android.R.layout.simple_list_item_1, values);
        setListAdapter(adapter);
      }
     
      // Sera appelée par l'attribut onClick des boutons déclarés dans main.xml
      public  void onClick(View view) {
        @SuppressWarnings("unchecked")    
     
        ArrayAdapter<Nom> adapter = (ArrayAdapter<Nom>) getListAdapter();
        Nom nom = null;
        switch (view.getId()) {       
     
        case R.id.add:
            final      String[] myNames = new String[] { "Coq", "Canard", "Lapin", "Chien", "Chat", "Cheval", "Ane", "Cerf", "Bison"};   
            int nextInt = new Random().nextInt(9);
     
                   nom = datasource.createNom(myNames[nextInt]);
                  adapter.add(nom);  
     
        // Passage à la 2 ème page
     
       Intent i = new Intent(TestDatabaseActivity.this, Question.class);
        //String nextInt = myNames[rando]; //on récupére le nom qui correspond au chiffre aléatoire dans ton tableau     
            i.putExtra("random", nextInt);    
      startActivity(i);  
     
       break;   
        case R.id.delete:
            if (getListAdapter().getCount() > 0) {
                Nom nom1 = (Nom) getListAdapter().getItem(0);
                datasource.deleteNom(nom1);
                adapter.remove(nom1);
        }
        break; 
        }
       adapter.notifyDataSetChanged(); 
      }
    }
    La base de données compte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Nom de la bases TEST.db
     
    DATABASE_NAME : TEST.db
     
    TABLE_MOTS: Table_Mots
    COLUMN_ID : id "integer primary key autoincrement"
    COLUMN_NOM : nom "txt not null"
    Merci pour votre aide.

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

Discussions similaires

  1. Utiliser AVG pour un calcul sur une liste d'entité
    Par VirgApps dans le forum Langage SQL
    Réponses: 3
    Dernier message: 01/10/2014, 14h46
  2. Réponses: 0
    Dernier message: 24/09/2014, 22h58
  3. Réponses: 2
    Dernier message: 16/08/2012, 10h28
  4. [MySQL] recuperer une valeur dans une liste deroulante pour l'utiliser dans une seconde liste
    Par tortue_22 dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 12/05/2010, 11h50
  5. Réponses: 2
    Dernier message: 21/10/2007, 13h26

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