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 :

Ergonomie et choix de développement


Sujet :

Android

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 35
    Points : 24
    Points
    24
    Par défaut Ergonomie et choix de développement
    Bonjour,

    je dois développer un questionnaire sous Android et j'aurai besoin de conseils avant de me lancer.

    Un questionnaire comprend 30 questions que je découpe en 6 parties.

    Chaque partie comprend une progress bar en haut, 2 boutons en bas (1 précédent et 1 suivant) puis 5 questions au centre.

    Comment découperiez vous l'affichage ? Combien d'activité ? Quelle est la meilleur possibilité pour éviter de réécrire du code 6 fois ?

    Sachant que je suis en API 10 minimum.

    Par avance merci !

  2. #2
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Points : 5 072
    Points
    5 072
    Par défaut
    De ce que tu décris, tu as une seule représentation => une activité et une vue.

    Un peu de conditionnel (si première, ne pas afficher précédent, si dernière ne pas afficher "suivant" mais "terminer").
    D'ailleurs, un bouton "précédent", tu n'en as pas forcément besoin à mon sens, sauf si tu prends en main toi-même le bouton back et fait revenir AVANT le questionnaire.
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 35
    Points : 24
    Points
    24
    Par défaut
    Merci !

    Donc je créé une activité et je change le centre contenant les questions à chaque fois que j'appuie sur suivant ? En créant un layout par partie et en les rendant visible/invisble selon ma position dans le questionnaire ?

    Pour le bouton précédent je suis d'accord.

  4. #4
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Points : 5 072
    Points
    5 072
    Par défaut
    Je vais partir du principe que tu auras des questions dans un format exploitable facilement (JSON ou XML).

    Tu arrives à la question N.
    Tu affiches la question qui va bien.
    Tu affiches les réponses qui vont bien.
    Tu mets à jour la progress bar.

    Quand tu appuies sur suivant, tu crées une nouvelle activité et tu fais le même processus avec la question N+1.
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 35
    Points : 24
    Points
    24
    Par défaut
    Pour les questions tout sera en dur dans le code.

    C'est quoi l’intérêt de faire une activité par question ?

    Si je fais ça j'aurai à utiliser 1 layout différent pour chaque activité non ? Et donc je devrais refaire une progressebar et les bouton prec/suiv à chaque fois non ?

  6. #6
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Points : 5 072
    Points
    5 072
    Par défaut
    L'intérêt est que tu utiliseras la même activité et le même layout pour tout, puisque c'est le cas à priori.
    Une seule activité et un seul layout => pourquoi en faire plus ?
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 35
    Points : 24
    Points
    24
    Par défaut
    ok je crois comprendre, merci bien.

    En fait quand tu disais :
    Quand tu appuies sur suivant, tu crées une nouvelle activité et tu fais le même processus avec la question N+1.
    Tu parles en fait de la même activité c'est ça ?

    Je suis d'accord avec toi. Petit bémol, les questions sont très différentes les unes des autres. Une fois elle sera constituée d'une ratingbar puis celle d'après un radiobutton puis après un champs de texte libre puis après un datepicker etc.

    Donc 1 activité et 1 layout par partie (1 partie = 5 questions) non ?

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 35
    Points : 24
    Points
    24
    Par défaut
    D'ailleurs je pensais à autre chose. Je peux pas créer une activité et l'instancier qu'une seule fois pour ensuite changer l'intérieur. Genre avoir un fragmentlayout au centre et en changer le contenu suivant la valeur d'une variable ?

    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
     
     
    @Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
     
     
    		setContentView(R.layout.activity_evaluer_question);
     
    		Intent myIntent = getIntent();
    	    questionnaire_partie = Integer.parseInt(myIntent.getStringExtra("questionnaire_partie"));
     
    		progressbar_partie = (ProgressBar) findViewById(R.id.progressBar_questionnaire);
     
     
    		tv_partie = (TextView) findViewById(R.id.tv_partie);
     
    		btn_precedent = (Button) findViewById(R.id.btn_precedent);
    		btn_precedent.setOnClickListener(OnClickListenerPrecedent);
     
    		btn_suivant = (Button) findViewById(R.id.btn_suivant);
    		btn_suivant.setOnClickListener(OnClickListenerSuivant);
     
     
    			switch (questionnaire_partie) {
    			case 1:
    				tv_partie.setText("Charge 1/5");
    				btn_precedent.setEnabled(false);
                                    // On utilise tel fragment
    				break;
    			case 2:
    				tv_partie.setText("Charge 2/5");
    				btn_precedent.setEnabled(true);
    				// On utilise tel fragment
    				break;
     
    			default:
    				break;
    			}
    	}
     
    private OnClickListener OnClickListenerPrecedent = new OnClickListener() {
    		  @Override
    		  public void onClick(View v) 
    		  {
    			  questionnaire_partie--;
    		  }
    	};
     
    	private OnClickListener OnClickListenerSuivant = new OnClickListener() {
    		  @Override
    		  public void onClick(View v) 
    		  {
    			  questionnaire_partie++;
    		  }
    	};

  9. #9
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Points : 5 072
    Points
    5 072
    Par défaut
    Une activité, X layout qui seront utilisés/initialisés au besoin.
    Bon... dans ce cas, la question de X activités (une par layout) se pose légitimement.
    Dépendant de la complexité et des traitements factorisables, il faudra partir sur l'un ou l'autre.

    Personnellement, j'évite au possible de créer les vues dynamiquement, car je trouve ça complexe a réaliser et à maintenir pour une valeur ajoutée quasi-nulle.
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 35
    Points : 24
    Points
    24
    Par défaut
    Ok merci.

    Et pour ce qui est du fragment layout ? C'est stupide ?

    Parce que ce qui me dérange dans le fait d'appeler une activité différente à chaque fois c'est que ça va se voir ça fait moins fluide à l'utilisation.

    Et je voudrais pouvoir réutiliser certaines parties du questionnaire à d'autres endroits : Typiquement j'ai un questionnaire pour homme et un pour femme, je voudrais réutiliser certaines parties communes suivant le sexe de l'utilisateur.

  11. #11
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Points : 5 072
    Points
    5 072
    Par défaut
    Non, c'est une bonne idée.
    Je l'ai juste oublié dans mon message précédent (à faire plusieurs trucs en même temps :/ ).

    Les transitions seront un peu moins prononcées avec des Fragments, c'est vrai. Dans les deux cas, ce sera tout de même assez fluide, à mon sens.
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 35
    Points : 24
    Points
    24
    Par défaut
    Pas de problème. Merci pour le temps que tu m'accordes !

    Bon je vais regarder si je trouve des tuto qui vont dans ce sens.

    Encore merci (je marquerai la discussion comme résolu quand j'aurai au moins fait un passage "partie 1" -> "partie 2" du questionnaire à partir de la même activité).

    Ok pour les transitions.

  13. #13
    Membre habitué
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2012
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2012
    Messages : 129
    Points : 144
    Points
    144
    Par défaut
    Tu peux tout faire dans une activity et un layout. Pour tes parties qui se modifieront une avec rating bar une avec une progress tu n'as qu'a utiliser des ViewStub que tu inflate suivant le type de question.

    Si c'est juste un déroulement d'un questionnaire tu as doit allé très vite.

    Tu arrive sur ton activity tu rempli un ArrayList, tu crée un enum pour le type de réponse choix unique, choix multiple, réponse ouverte. Et à chaque fois que tu clique sur un bouton suivant ou précédent tu inflate ce qui t'intérrésse

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/09/2008, 17h10
  2. Réponses: 9
    Dernier message: 09/04/2008, 16h51
  3. Conseils pour choix de développement
    Par PPonce dans le forum Visual C++
    Réponses: 5
    Dernier message: 29/02/2008, 11h52
  4. [pratique][ergonomie] Pluri-choix dans une liste
    Par d_token dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 11/09/2006, 14h24
  5. Aide langage - choix de développement
    Par sebbe dans le forum Général Conception Web
    Réponses: 1
    Dernier message: 02/06/2006, 11h01

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