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 :

Créer une liste selon un résultat de question


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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 Créer une liste selon un résultat de question
    Bonjour,

    Je termine mon application de quiz, mais encore un petit problème:

    Dans le quizz, on pose une question.
    On y répond.
    La réponse est bonne, pas de soucis on passe à la question suivante.
    La réponse est fausse, on passe à la question suivante.

    A la fin de la série de question ( nombre de question choisi au début).
    Il y a un récapitulatif avec :
    Nombre de questions posées.
    Nombre de Bonnes réponses.
    Nombre de mauvaises réponses.

    Un TextView devrait montrer la liste des réponses fausses avec :
    - la question
    - la réponse du joueur
    - la réponse attendue.

    Mais voilà c'est là que je bloque, je n'arrive à afficher que la dernière mauvaise réponse.
    Et c'est la liste de toutes les réponses fausses que je veux (que je désire).

    Le code "Activité Principale:
    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
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    public class Quiz1Activity extends Activity {
     
        String userReponse;
        private EditText editText;
        private int nbreQuestions = 4;
     
        int index;
     
         static int reponseb = 0;
         static int reponsef = 0;
         int score = (reponseb+reponsef);
         int mascQ = 0;
         int femiR = 0;
         int repUserF = 0;
         int numeQuestion;
     
        String masc ;
        String femi ;
     
        String propos;
        String repAttend;
        String repUser;    
     
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_quiz1);
     
     
            editText = (EditText) findViewById(R.id.editText1);
     
    Button aleatoire = (Button) findViewById(R.id.button1);    
     
     
     
            final String[][] myNames = {
                {"Samedi", "Sobota"},
                {"Canard", "Cane"},
                {"Lapin", "Lapine"},
                {"Jeudi", "Czwartek"},
                {"Chat", "Chatte"},
                {"Cheval", "Jument"},
                {"Désolé", "Przepraszam"},
                {"Mardi", "Wtorek"},};    
     
            aleatoire.setOnClickListener(new View.OnClickListener() {            
            @Override
                public void onClick(View v) {
                    Resources res = getResources();
                    TextView verdict;
                    Random rand = new Random();
     
    //    for(int i = 0; i < nbreQuestions; i++);
     
        index = rand.nextInt(myNames.length);
                     masc = myNames[index][0];
                     femi = myNames[index][1];
     
     
                     if ((reponseb+reponsef) < nbreQuestions)    {
     
                         ((EditText) findViewById(R.id.editText1)).setText("");
                         ((TextView) findViewById(R.id.textView2)).setText("");
                         ((TextView) findViewById(R.id.textView1)).setText(masc);
     
     
                          String chaine = res.getString(R.string.compteur,(reponseb+reponsef)+1,nbreQuestions); 
                          TextView compteur = (TextView) findViewById(R.id.textView3);
                          compteur.setText(chaine);     
     
                          Button validation = (Button) findViewById(R.id.btn2);
                          editText = (EditText) findViewById(R.id.editText1);
     
                          validation.setOnClickListener(new View.OnClickListener() {
     
                            public void onClick(View v) {
     
                                userReponse = editText.getText().toString();
                                  String verdict = getString (R.string.verdict) ;
                                  String verdictBad = getString (R.string.verdictBad);
     
                                          TextView myTextView = (TextView) findViewById(R.id.textView2);
                                          myTextView.setText(verdict);;
                                          myTextView.setTextColor(Color.GREEN);
     
                                  if (userReponse.equals(femi))    {
     
                                       myTextView.setText("Text en Vert");
                                      myTextView.setTextColor(Color.GREEN);                                                         
     
                              ((TextView) findViewById(R.id.textView2)).setText(verdict);
                                  reponseb++;
                                  }
                            else    {
                                  myTextView.setText("Text en Rouge");
                                      myTextView.setTextColor(Color.RED);
     
                                      ((TextView) findViewById(R.id.textView2)).setText(verdictBad);
     
                                      repAttend = femi;
                                      repUser = userReponse;;
                                      propos    = masc;
                                      reponsef++;
     
     
                    };;}});}
                     else
                     {
                      ((EditText) findViewById(R.id.editText1)).setText("");
                         ((TextView) findViewById(R.id.textView2)).setText("");
                         ((TextView) findViewById(R.id.textView1)).setText("");
                         ((TextView) findViewById(R.id.textView4)).setText(" Fin du questionnaire !");
     
     
                     Button recap =(Button) findViewById(R.id.btnRecap); 
                     recap.setOnClickListener(new OnClickListener() { 
     
                        public void onClick (View view) {
                        // TODO Auto-generated method stub    
     
                            Intent intent = new Intent(Quiz1Activity.this, Recap.class);    
                                Bundle pass1 = new Bundle();
                                pass1.putString("passInfo1", repUser.concat(""));
                                intent.putExtras(pass1);
     
                                Bundle pass2 = new Bundle();
                                pass2.putString("passInfo2", repAttend.concat(""));
                                intent.putExtras(pass2);
     
                                Bundle pass3 = new Bundle();
                                pass3.putString("passInfo3", propos.concat(""));
                                intent.putExtras(pass3);
     
                            startActivity(intent);    
     
                             ;;;;;;;;;;}{;}{;;;};;;{{{};;;;;;;;;;;;;;;;;;;;;;;;;{{{{}{{}}{}{}}}{};; ;; ;;
                             ; ; ; ; ; ;; ; ; ;; 
                                 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                             }}{} };});;;;;}};});}}
    Code de la "Seconde Activité"
    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
    public class Recap extends Activity    {
     
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_recap);    
     
    final TextView reponse = (TextView) findViewById(R.id.VotreReponse2);
        Bundle pass1 = this.getIntent().getExtras();
        String reponseUser = pass1.getString("passInfo1");
        reponse.setText(reponseUser);
     
    final TextView reponse2 = (TextView) findViewById(R.id.Solution2);    
        Bundle pass2 = this.getIntent().getExtras();
        String repAttend = pass2.getString("passInfo2");
        reponse2.setText(repAttend);
     
        final TextView reponse3 = (TextView) findViewById(R.id.proposition2);    
        Bundle pass3 = this.getIntent().getExtras();
        String propos = pass3.getString("passInfo3");
        reponse3.setText(propos);
        }
    }
    Nom : SecindeActivite.gif
Affichages : 139
Taille : 207,1 Ko

    Quelqu'un saurait-il me guider un peu ?

    Merci d'avance pour votre aide.

  2. #2
    Expert confirmé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Billets dans le blog
    3
    Par défaut
    Salut,

    Je pense que les réponses sont autant au niveau programmation générique, que Android, d'ou le peu de réponse ici....

    Je vais tenter:

    1. Données.
    Je ne vois aucune classe de "données"... Dans le cas présent je vois perso au moins deux classes de données:
    "Question" (avec la question posée, et la bonne réponse)
    "Reponse" (avec une référence sur la "Question" ci-dessus, et la réponse de l'utilisateur).
    Histoire d'être parfaitement interopérables sur Android, ces deux objets devraient être "Parcelable".

    Il me semble que dans le code le premier objet ( que j'appelle "Question" ) est un tableau de tableaux de Strings ...
    Question évolution, cela va poser rapidement un soucis: que faire si plusieurs réponses sont valables ? etc...

    2. Flow utilisateur.
    Perso, je verrai la fonction "poser une question" comme une activité à part entière: genre "QuestionActivity" (ce pourrait-être un fragment hein !, mais restons simples pour l'instant).
    Il prendrait en entrée (dans le Bundle passé à l'intent de startActivity) un objet de type "Question", et en sortie un objet de type "Reponse".
    Du coup, le point d'entrée ("MainActivity") ne sert qu'à dérouler les question et afficher le score (et les "Reponse") au final.

    Pour MainActivity, un truc genre:
    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
     
    public void onCreate(...)
    {
         super.onCreate()
         setContentView(...);
     
         this.questionIdx = 0; //
         this.answers = new ArrayList<Reponse>();
     
         showNextQuestion();
    }
     
    private final static int QUESTION_REQUEST = 238992;
     
    public void showNextQuestion()
    {
         if (this.questionIdx < this.numQuestions) {
             Question question = pickRandomQuestion(); // on vérifie au passage que la question n'est pas dans "this.answers !"
             Intent questionIntent = new Intent(this,QuestionActivity.class);
             questionIntent.putExtra("question",question);
             startActivityForResult(questionIntent,QUESTION_REQUEST);
         } else
            showScore();
    }
     
    public void showScore()
    {
         // il faudra certainement surcharger ArrayAdapter pour fournir de bonnes "views"
         // on peut aussi filtrer sur les bonnes / mauvaises réponses 
    int score = 0;
    int total = this.answers.size();
    ArrayList<Reponse> badAnswers = new ArrayList<Reponse>();
    for (Reponse r : this.answers) {
          if (r.isCorrect()) 
             ++score;
          else
             badAnswers.add(r);
    }
         ArrayAdapter<Reponse> adapter = new ArrayAdapter<Reponse>(this,badAnswers);
         ((ListView)findViewById(R.id.answerList)).setAdapter(adapter);
    // montrer aussi le score !
    }
     
    public void onActivityResult(int requestCode, int resultCode, Intent ret)
    {
         if (requestCode == QUESTION_REQUEST) {
             if (resultCode == OK) {
                 Reponse r = ret.getExtra("reponse");
                 this.answers.add(r);
                 showNextQuestion();
             } else
                 finish();
         }
    }

  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.
    Je me penche sur vos recommandations et j'essaye de suite.
    Je vous tiens au courant.
    A +

  4. #4
    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

    Re- merci pour la réponse.

    Il est impossible que plusieurs réponses soient valables.
    exemple :
    "Une fleur" s'écrira toujours (fleur)
    "Des fleurs" s'écrira toujours (fleurs).
    Les questions du quiz portent toujours sur l'orthographe d'un mot.
    En français, j'ai rien en tête, mais pour mon quiz "orthographe des mots en polonais"
    Exemple :
    "Fleur" peut s'écrire (Kwiat) ou (kwiatek).
    Dans ce cas je mets les 2 mots en réponse .
    C'est la méthode actuelle pour mes test
    Question (1 mot)
    Réponse (1 mot , 1 mot).

    En revenant sur votre solution, je suis un peu perdu car plus débutant que moi, y a pas, sinon en prépa-maternelle.

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 16/05/2007, 17h53
  2. Réponses: 2
    Dernier message: 03/07/2006, 20h14
  3. Réponses: 3
    Dernier message: 20/02/2006, 18h32
  4. [EXCEL]Créer une liste (combo)
    Par elitost dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 02/12/2005, 16h55
  5. Réponses: 5
    Dernier message: 29/09/2005, 14h37

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