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 :

Représenter un algorigramme


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Février 2012
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Février 2012
    Messages : 6
    Par défaut Représenter un algorigramme
    Bonjour j' ecris ce message par désespoir, je commence a peine le developpement sur android donc j' ai un peu de mal à faire ce que je souhaite. J' espère pouvoir être aidé en postant sur ce forum.

    Bref ce que j' aimerai faire c'est représenter un algorigramme étape par étape en proposant a chaque fois les réponses Oui/Non.Je ne sais pas si je suis très clair , peut etre qu' un schéma s'impose


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
                     Oui -----Question 1-----Non
                     |                         |
             -----Question 2-----    -----Question3-----
             |                  |    |                 |
        Question 4      Question 5  Question 6    Question 7
    J' ai fait plusieurs essais par exemple avec des if/else if imbriqués mais j' ai du mal avec les listeners.
    Peut-être faut-il créer un nouvelle activité a chaque fois ?

    Pouvez-vous m' aider sur la bonne méthode a utiliser ?

    D'avance, merci.

  2. #2
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Par défaut
    Salut,

    Afin de mieux te répondre, il faudrait que tu nous explique quelle étape est bloquante chez toi :
    - l'algorithmie pour développer ta solution
    - l'architecture à utiliser sur Android
    - la graphisme / l'ergonomie de ton application
    - une partie technique sur le développement (par exemple impossible "d'écouter" un clic sur un bouton).
    - etc

  3. #3
    Nouveau membre du Club
    Inscrit en
    Février 2012
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Février 2012
    Messages : 6
    Par défaut
    Et bien mon problème est tout simplement la syntaxe a utiliser.
    Comme je l' ai dit je suis parti d' une architecture avec des if/else if mais je ne pense pas avoir fait le bon choix et je pense devoir repartir de zéro.

    Le programme affiche tout d' abord la première question, puis en fonction du bouton cliqué affiche la question suivante (Qui est donc différente si la réponse et "oui" ou si elle est "non") et recommence la même opération.

    Comme je le disait je bloque essentiellement sur l'utilisation des listeners sur les boutons oui/non. J'avais pensé ne créer qu' un seul listener, mais il faudrait pouvoir faire un "reset" apres chaque condition pour que le bouton ne soit plus detecter comme cliqué, sinon les condition qui s'executent quand le bonton "oui" est cliqué sont toutes vraies au premier clic au lieu d'attendre un nouvel appui sur un bouton.
    Ou alors il faudrait que dans chacune des conditions je mette un listener mais dans ce cas le code devient vite très lourd.

    Pour donner une idée, voici le genre d' algorigramme que je souhaite représenter :


  4. #4
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Par défaut
    En faite, il faut déjà commencer par le début et modéliser au mieux tes données.
    Ici cela ressemble fortement à un Graphe.

    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
     
    public interface Item {
    }
    public class Question implements Item{
       String mQuestion;
       Item mYes;
       Item mNo;
    }
    public class Reponse implements Item {
       String mReponse;
    }
     
    public class MesDonnees {
     
       public MesDonnees () {
            Reponse rep1 = new Reponse();
            rep1.mReponse = "Try drive in test PC";
     
            Reponse rep2 = new Reponse();
            rep2.mReponse = "Deffective power Supply...";
     
     
            Question qu1 = new Question();
            qu1.mQuestion = "Spin up on...";
            qu1.mYes = rep2;
            qu1.mNo = rep1;
     
            //etc... tu codes tes questions.
       }
     
    }
    Une fois des données modélisées, ça va vite pour faire ton interface.

    on imagine que tu as un layout XML avec 1 zone de texte (lbTexte) et deux boutons (btOui et btNon).

    Et voici ce que tu pourrais retrouver dans ton 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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
     
    public void init() {
        showQuestion(questionInitiale);
    }
     
    public void showQuestion(final Item aItem) {
       if (aItem instanceof Question) {
           lbTexte.setText((Question)aItem.mQuestion);
           btOui.setVisible(View.VISIBLE);
          btNon.setVisible(View.VISIBLE);
          btOui.setOnClickListener(new OnClickListener() {
             public void onClick() {
                 //Le gars à cliqué sur oui, on passe à la question suivante : 
                showQuestion(aItem.mYes);
             }
     
          };
     
         btNon.setOnClickListener(new OnClickListener() {
             public void onClick() {
                 //Le gars à cliqué sur oui, on passe à la question suivante : 
                showQuestion(aItem.mNo);
             }
     
          }
     
      } else {
          lbTexte.setText((Question)aItem.mQuestion);
          btOui.setVisible(View.GONE);
          btNon.setVisible(View.GONE);
      }
     
    }
    Le code est réduit à son minimum mais te présente un trame pour débuter. Il y a beaucoup d'optimisation à faire, y'a pas mal de trucs à revoir, mais te donne un point de vue pour comprendre un peu comment tu pourrais implémenter ça.

    [edit : Le code est pas compilable, je l'ai écris à la volé ici, donc t'amuse pas à faire copier coller ]

  5. #5
    Nouveau membre du Club
    Inscrit en
    Février 2012
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Février 2012
    Messages : 6
    Par défaut
    Merci beaucoup de ta réponse claire et rapide.

    Je vais essayer de mettre en place tes conseils pour voir ce que ça donne. Je tiendrai au courrant de mon avancement.

    Encore merci et a plus tard.

    Edit : Re, je suis en train d' experimenter ce que tu m' a proposé mais bute sur quelques obstacles. (Je débute tout juste et je ne saisi pas vraiment tout)

    Tout d' abord voila ou j' en suis :

    - J' ai une interface Item
    - Une classe Question
    - Une classe Reponse
    - Une classe MesDonnees
    - Et bien sur ma classe principale
    - J' ai recopié ton code en modifiant le nom de mes vues après les avoir déclarées

    Mes problèmes se posent au niveau de ma classe main.
    Tout d' abord, tu as ecrit :

    btOui.setVisible(View.GONE);
    btNon.setVisible(View.GONE);

    Je suppose que tu voulais dire :

    boutonOui.setVisibility(View.GONE);
    boutonNon.setVisibility(View.GONE); ?

    Puisque apparement la methode setVisible n' est pas definie pour les Button.
    Ensuite quelques erreurs se présentent a moi et j' ai un peu de mal a tout comprendre.
    par exemple :
    The method setText(CharSequence) in the type TextView is not applicable for the arguments (Question)
    mQuestion cannot be resolved or is not a field
    Pourrais-tu m' éclaircir ?
    Merci

  6. #6
    Nouveau membre du Club
    Inscrit en
    Février 2012
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Février 2012
    Messages : 6
    Par défaut
    Re,
    J' ai un peu avancé, fait quelques correction dans ton code (peut-être fausses).
    Voici le contenu de mon main :

    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
     
    package com.depannage.laptop;
     
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.TextView;
     
    public class main extends Activity {
     
    	TextView question = (TextView)findViewById(R.id.question);
    	Button boutonOui = (Button)findViewById(R.id.boutonOui);
    	Button boutonNon = (Button)findViewById(R.id.boutonNon);
     
    public void showQuestion(final Question aItem) {
       if (aItem instanceof Question) {
     
           question.setText(aItem.mQuestion);
           boutonOui.setVisibility(View.VISIBLE);
           boutonNon.setVisibility(View.VISIBLE);
           boutonOui.setOnClickListener(new OnClickListener() {
             public void onClick(View v) {
                 //Le gars à cliqué sur oui, on passe à la question suivante : 
                showQuestion((Question) aItem.mYes);
             }
     
          });
     
         boutonNon.setOnClickListener(new OnClickListener() {
             public void onClick(View v) {
                 //Le gars à cliqué sur oui, on passe à la question suivante : 
                showQuestion((Question) aItem.mNo);
             }
     
          });
     
      } else {
          question.setText(aItem.mQuestion);
          boutonOui.setVisibility(View.GONE);
          boutonNon.setVisibility(View.GONE);
      }
     
    }
     
    }
    Il me manque l' ajout de la question initiale mais j' ai du mal a comprendre comment faire. Je ne sais pas si j' ai bien fait de modifier certaines chose dans ton code mais du coup j' ai du mal a comprendre l'utilité de l'interface Item.
    En fait je ne connais pas le concept d' interface, ni son utilité. Pourrais-tu m'aider a corriger ce qui ne va pas ?

    Merci

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

Discussions similaires

  1. représentation cartographique de coordonnées
    Par programmeur90 dans le forum Algorithmes et structures de données
    Réponses: 16
    Dernier message: 31/01/2005, 15h20
  2. [debutant] représentation vector dans diagramme de class
    Par onap dans le forum Diagrammes de Classes
    Réponses: 5
    Dernier message: 23/12/2004, 22h01
  3. Représentation intervallaire des listes arborescentes
    Par PMAR dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 05/11/2004, 09h35
  4. [Normes] représentation des pourcentages
    Par Bowen dans le forum Décisions SGBD
    Réponses: 6
    Dernier message: 19/10/2004, 14h42
  5. [ASM370] Décimaux : représentation compacte et etendue
    Par grand's dans le forum Autres architectures
    Réponses: 6
    Dernier message: 25/01/2004, 17h47

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