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 :

Additionner les chiffres du résultat d'une addition


Sujet :

Android

  1. #1
    Membre habitué
    Inscrit en
    Novembre 2010
    Messages
    154
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 154
    Points : 130
    Points
    130
    Par défaut Additionner les chiffres du résultat d'une addition
    Bonjour à tous et bonne année,

    J'ai fait une activité addition. L'utilisateur note 3 chiffres (avec 3 EditText).
    J'ai un bouton "calcul" et lorsqu'on clique dessus, on obtient le résultat de l'addition (dans un 4è EditText).

    Exemple: 12+12+2410=2434.

    Jusqu'ici ça va.

    Par contre je souhaite maintenant additionner chaque chiffre du résultat jusqu'à n'avoir qu'1 seul chiffre.
    Si je reprends mon exemple, je souhaite faire:
    2+4+3+4= 13
    Dans ce cas il faut encore 1 addition : 1+3=4

    Voici où j'en suis mais je ne vois pas comment faire la suite: récupérer chaque chiffre et les additionner tant que le résultat dépasse 2 chiffres.

    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
    public class Calcul extends Activity {
     
    	private EditText firstNumber, secondNumber, thirdNumber;
    	private TextView total;
    	private Button addButton;
     
        @Override
        public void onCreate(Bundle savedInstanceState) {
    	    super.onCreate(savedInstanceState);
    	    setContentView(R.layout.activity_calcul);
     
    	    firstNumber = (EditText) findViewById(R.id.firstNumber);
    	    secondNumber = (EditText) findViewById(R.id.secondNumber);
    	    thirdNumber = (EditText) findViewById(R.id.thirdNumber);
    	    addButton = (Button) findViewById(R.id.addButton);
    	    total = (TextView) findViewById(R.id.total);
     
    	    addButton.setOnClickListener(new View.OnClickListener() {
    	        @Override
    	        public void onClick(View v) {
    	            String firstNumberResult = firstNumber.getText().toString();
    	            String secondNumberResult = secondNumber.getText().toString();
    	            String thirdNumberResult = thirdNumber.getText().toString();
     
    	            Integer totalResult = Integer.parseInt(firstNumberResult) + Integer.parseInt(secondNumberResult)+ Integer.parseInt(thirdNumberResult);
     
    	            total.setText("Total = " + Integer.toString(totalResult));
    	        }
    	    });
        }
     
     
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.calcul, menu);
            return true;
        }
     
    	public EditText getFirstNumber() {
    		return firstNumber;
    	}
     
    	public EditText getSecondNumber() {
    		return secondNumber;
    	}
     
    	public EditText getThirdNumber() {
    		return thirdNumber;
    	}
     
    	public Button getAddButton() {
    		return addButton;
    	}
     
    	public TextView getTotal() {
    		return total;
    	}
    }
    Merci pour votre aide.

  2. #2
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2013
    Messages : 149
    Points : 196
    Points
    196
    Par défaut
    Ba c'est simple tu fais une boucle avec tant que nombre.length() > 1
    avec nombre ton nombre convertit en String

  3. #3
    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
    Points : 1 493
    Points
    1 493
    Par défaut
    Citation Envoyé par clege Voir le message
    Par contre je souhaite maintenant additionner chaque chiffre du résultat jusqu'à n'avoir qu'1 seul chiffre.
    Si je reprends mon exemple, je souhaite faire:
    2+4+3+4= 13
    Dans ce cas il faut encore 1 addition : 1+3=4
    Essaie ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
            //Imaginons a la variable qui contient le résultat de la première somme
            int a = 2434;
            int som = 0;
            //Transformer l'entier en String
            String as = Integer.toString(a);
            //Effectuer la somme de tous les éléments de String
            for(int i = 0; i < as.length(); i++){
                som += Integer.parseInt(as.substring(i, i+1));
            }
            System.out.println("Som = "+som);
    Bonne année 2015 à toi.
    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.

  4. #4
    Membre habitué
    Inscrit en
    Novembre 2010
    Messages
    154
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 154
    Points : 130
    Points
    130
    Par défaut
    Merci pour votre aide.
    J'avance pas à pas. J'ai intégré le bout de code mais ... mal.

    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
    public class Calcul extends Activity {
     
    	private EditText firstNumber, secondNumber, thirdNumber;
    	private TextView total;
    	private Button addButton;
     
        @Override
        public void onCreate(Bundle savedInstanceState) {
    	    super.onCreate(savedInstanceState);
    	    setContentView(R.layout.activity_calcul);
     
    	    firstNumber = (EditText) findViewById(R.id.firstNumber);
    	    secondNumber = (EditText) findViewById(R.id.secondNumber);
    	    thirdNumber = (EditText) findViewById(R.id.thirdNumber);
    	    addButton = (Button) findViewById(R.id.addButton);
    	    total = (TextView) findViewById(R.id.total);
     
    	    addButton.setOnClickListener(new View.OnClickListener() {
    	        @Override
    	        public void onClick(View v) {
    	            String firstNumberResult = firstNumber.getText().toString();
    	            String secondNumberResult = secondNumber.getText().toString();
    	            String thirdNumberResult = thirdNumber.getText().toString();
     
    	            Integer totalResult = Integer.parseInt(firstNumberResult) + Integer.parseInt(secondNumberResult)+ Integer.parseInt(thirdNumberResult);        
     
     
    	            total.setText("Total = " + Integer.toString(totalResult));
     
     
    	            int a = totalResult;
    	            int som = 0;
    	            //Transformer l'entier en String
    	            String as = Integer.toString(a);
    	            //Effectuer la somme de tous les éléments de String
    	            for(int i = 0; i < as.length(); i++){
    	                som += Integer.parseInt(as.substring(i, i+1));
    	            }
    	            System.out.println("Som = "+som);
     
     
    	        }
    	    });
        }
     
     
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.calcul, menu);
            return true;
        }
     
    	public EditText getFirstNumber() {
    		return firstNumber;
    	}
     
    	public EditText getSecondNumber() {
    		return secondNumber;
    	}
     
    	public EditText getThirdNumber() {
    		return thirdNumber;
    	}
     
    	public Button getAddButton() {
    		return addButton;
    	}
     
    	public TextView getTotal() {
    		return total;
    	}
     
    }
    Voyez-vous mon erreur ?

  5. #5
    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
    Points : 1 493
    Points
    1 493
    Par défaut
    Citation Envoyé par clege Voir le message
    Voyez-vous mon erreur ?
    Non! Parce que tu n'as pas posté le message d'erreur qui s'affiche dans la console...
    A part quelques conversions de types non justifiées tels que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    //ICI
    total.setText("Total = " + Integer.toString(totalResult));
    Alors que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    total.setText("Total = " + totalResult);
    suffirait!
    Mais aussi dans cette expression
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Integer totalResult = Integer.parseInt(firstNumberResult) + Integer.parseInt(secondNumberResult)+ Integer.parseInt(thirdNumberResult);
    Alors que utiliser int suffirait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int totalResult = Integer.parseInt(firstNumberResult) + Integer.parseInt(secondNumberResult)+ Integer.parseInt(thirdNumberResult);
    Affiche l'erreur qui t'est renvoyée dans le logCat
    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.

  6. #6
    Membre habitué
    Inscrit en
    Novembre 2010
    Messages
    154
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 154
    Points : 130
    Points
    130
    Par défaut
    Merci beaucoup à tous pour vos aides.
    En fait il n'y a pas d'erreur dans le logcat.
    Pour le moment, l'avd affiche la même chose qu'au début, cad, 3 edittext le bouton calcul et lors du clic le résultat dans un autre edittext. Comme si le code ajouté n'existait pas. Et malheureusement (ou pas) il y a une raison
    mais je sèche
    je voudrais que le résultat de l'addition soit vérifié et si il dépasse 2 chiffres, alors il soit réaditionné avant d'être affiché.

  7. #7
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2013
    Messages : 149
    Points : 196
    Points
    196
    Par défaut
    J'ai survolé vite fait ton code, le résultat que tu veux afficher tu essai de l'afficher avec ça ? :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     System.out.println("Som = "+som);
    Si c'est le cas ça marchera pas il faut l'afficher dans une view avec un settext

  8. #8
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Autre solution pour faire la somme des chiffres d'un int :

    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
    public static int sumDigits(int input) {
     
      int output;
     
      if ( input<0 ) input = -input;
      if ( input<10 ) {
        output = input;
      }
      else {
        output = 0;
        while( input>0 ) {
          output += input % 10;
          input /= 10;
        }
      }
     
      return output;
     
    }
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  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
    Points : 1 493
    Points
    1 493
    Par défaut
    Citation Envoyé par Nhi80 Voir le message
    J'ai survolé vite fait ton code, le résultat que tu veux afficher tu essai de l'afficher avec ça ? :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     System.out.println("Som = "+som);
    Si c'est le cas ça marchera pas il faut l'afficher dans une view avec un settext
    Heu! Mais de quoi est ce que tu parles?
    Bien sûr que ça affichera, dans le logCat. Il faut filtrer en allant sur "info"
    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 habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2013
    Messages : 149
    Points : 196
    Points
    196
    Par défaut
    Heu! Mais de quoi est ce que tu parles?
    Bien sûr que ça affichera, dans le logCat. Il faut filtrer en allant sur "info"
    Dans le logcat oui mais pas sur son appareil, et au début il a dit qu'il voulait l'afficher dans son Edittext

  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
    Points : 1 493
    Points
    1 493
    Par défaut
    Citation Envoyé par Nhi80 Voir le message
    Dans le logcat oui mais pas sur son appareil
    Pas sur son appareil? Le logCat ne s'affiche ni sur l'appareil, ni sur l'emulateur. Il sert entre autre pour déboguer un programme... Dire que System.out.println(); n'afficherait pas dans le logCat c'est ce qui est faux! Pas autre chose.
    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
    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
    Points : 1 493
    Points
    1 493
    Par défaut
    Citation Envoyé par clege Voir le message
    Merci beaucoup à tous pour vos aides.
    En fait il n'y a pas d'erreur dans le logcat.
    Pour le moment, l'avd affiche la même chose qu'au début, cad, 3 edittext le bouton calcul et lors du clic le résultat dans un autre edittext. Comme si le code ajouté n'existait pas.
    Essaie d'afficher le résultat dans Toast...
    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.

  13. #13
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2013
    Messages : 149
    Points : 196
    Points
    196
    Par défaut
    Pas sur son appareil? Le logCat ne s'affiche ni sur l'appareil, ni sur l'emulateur. Il sert entre autre pour déboguer un programme... Dire que System.out.println(); n'afficherait pas dans le logCat c'est ce qui est faux! Pas autre chose.
    ok je vais développer une réponse détaillé parce que t'as pas l'air de comprendre ce que je dis ...
    le System.out.println("Som = "+som); s'affichera bien dans son logcat,
    mais le résultat (donc la variable som) qu'il souhaite obtenir dans son edittext tel qu'il l'a dit au début :
    on obtient le résultat de l'addition (dans un 4è EditText).
    ne s'affichera pas dans le dit Edittext puisqu’à aucun moment il ne dit de l'afficher dans cet Edittext.

    Donc pour peu qu'il ait copié/coller ton code sans l'étudier, il n'a pas pensé à regarder le logcat et donc pour lui rien n'a changé sur son appareil (le mot appareil inclus terminal physique et AVD) :
    Pour le moment, l'avd affiche la même chose qu'au début, cad, 3 edittext le bouton calcul et lors du clic le résultat dans un autre edittext. Comme si le code ajouté n'existait pas. Et malheureusement (ou pas) il y a une raison
    Il a l'air de regarder uniquement l'AVD et non pas le Logcat, d'où ma remarque de début : la commande n'affichera rien sur son appareil, il faut afficher la variable dans l'edittext et pas dans le logcat ...

  14. #14
    Expert éminent

    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
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Rien n'est certain concernant System.out ... ca peut être le logcat, ou ... ailleurs. personne n'en sait rien.

    Log.i() par contre affiche dans le logcat à coup sur.
    et Toast.make().show() à l'écran à coup sur

    Enfin bref....

    c'est typiquement un algo récursif:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public int sommeDesValeurs(int ... values)
    {
        int base = 0;
        for (int v : values)
              base += v;
        return sommeDesChiffres(base);
    }


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public int sommeDesChiffres(int value)
    {
        if (value < 10) return value;
    
        int newBase = 0;
        while (value > 0) {
          int rest = value % 10;
          value = value / 10;
          newBase += rest;
        }
        return sommeDesValeurs(newBase);
    }
    


    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  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
    Points : 1 493
    Points
    1 493
    Par défaut
    Citation Envoyé par clege Voir le message
    Merci beaucoup à tous pour vos aides.
    En fait il n'y a pas d'erreur dans le logcat.
    Pour le moment, l'avd affiche la même chose qu'au début, cad, 3 edittext le bouton calcul et lors du clic le résultat dans un autre edittext. Comme si le code ajouté n'existait pas. Et malheureusement (ou pas) il y a une raison
    mais je sèche
    je voudrais que le résultat de l'addition soit vérifié et si il dépasse 2 chiffres, alors il soit réaditionné avant d'être affiché.
    Si tu veux voir le resultat dans un EditText, alors ajoute cet EditText dans ton code (Mais aussi dans le fichier xml) puis remplace Sytem.out.println(...) par une affectation à ton EditText...
    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 habitué
    Inscrit en
    Novembre 2010
    Messages
    154
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 154
    Points : 130
    Points
    130
    Par défaut
    Merci à tous, vous êtes vraiment adorables <3

    J'ai effectivement recopié le code et sur mon logcat j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    01-06 11:03:19.530: I/System.out(277): Som = 5
    Donc ça a bien fait le calcul.
    Effectivement, maintenant je souhaite l'afficher dans l'EditText où s'affiche pour le moment le 1er résultat de l'addition.
    J'utilise un émulateur.

  17. #17
    Membre habitué
    Inscrit en
    Novembre 2010
    Messages
    154
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 154
    Points : 130
    Points
    130
    Par défaut
    Voici où j'en suis :

    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
    public class Calcul extends Activity {
     
    	private EditText firstNumber, secondNumber, thirdNumber;
    	private TextView total;
    	private TextView total2;
    	private Button addButton;
     
        @Override
        public void onCreate(Bundle savedInstanceState) {
    	    super.onCreate(savedInstanceState);
    	    setContentView(R.layout.activity_calcul);
     
    	    firstNumber = (EditText) findViewById(R.id.firstNumber);
    	    secondNumber = (EditText) findViewById(R.id.secondNumber);
    	    thirdNumber = (EditText) findViewById(R.id.thirdNumber);
    	    addButton = (Button) findViewById(R.id.addButton);
    	    total = (TextView) findViewById(R.id.total);
    	    total2 = (TextView) findViewById(R.id.total2);
     
    	    addButton.setOnClickListener(new View.OnClickListener() {
    	        @Override
    	        public void onClick(View v) {
    	            String firstNumberResult = firstNumber.getText().toString();
    	            String secondNumberResult = secondNumber.getText().toString();
    	            String thirdNumberResult = thirdNumber.getText().toString();
     
    	            Integer totalResult = Integer.parseInt(firstNumberResult) + Integer.parseInt(secondNumberResult)+ Integer.parseInt(thirdNumberResult);        
     
     
    	            //total.setText("Total = " + Integer.toString(totalResult));
     
     
    	            int a = totalResult;
    	            int total2 = 0;
    	            //Transformer l'entier en String
    	            String as = Integer.toString(a);
    	            //Effectuer la somme de tous les éléments de String
    	            for(int i = 0; i < as.length(); i++){
    	            	total2 += Integer.parseInt(as.substring(i, i+1));
    	            }
    	            System.out.println("Som = "+total2);
     
    	            total2.setText("Total = " + Integer.toString(total2));
     
     
     
    	        }
    	    });
        }
     
     
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.calcul, menu);
            return true;
        }
     
    	public EditText getFirstNumber() {
    		return firstNumber;
    	}
     
    	public EditText getSecondNumber() {
    		return secondNumber;
    	}
     
    	public EditText getThirdNumber() {
    		return thirdNumber;
    	}
     
    	public Button getAddButton() {
    		return addButton;
    	}
     
    	public TextView getTotal() {
    		return total;
    	}
     
    	public TextView getTotal2() {
    		return total2;
    	}
     
    }
    J'ai un gros soucis pour afficher le résultat final dans le TextView.
    Cette ligne (43 ici) est en erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    total2.setText("Total = " + Integer.toString(total2));

  18. #18
    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
    Points : 1 493
    Points
    1 493
    Par défaut
    Quelle est l'erreur que tu as?
    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.

  19. #19
    Membre habitué
    Inscrit en
    Novembre 2010
    Messages
    154
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 154
    Points : 130
    Points
    130
    Par défaut
    la ligne est soulignée: "Cannot invoke setText(String) on the primitive type int"

  20. #20
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Tu déclares une variable locale par int total2 = 0; qui cache la variable de classe private TextView total2;.
    Donc quand tu fais total2.setText("Total = " + Integer.toString(total2)); un peu plus loin dans le code, le total2 surlequel tu invoques setText est un int, qui n'a pas de méthode setText (ce qui dit le message).

    D'où l'importance de prendre l'habitude d'avoir des variables dont le nom ait un sens, ce qui limite ce genre de "doublon" (par exemple, private TextView total2TextView;). Pour éviter l'erreur, tu peux préciser que tu veux appeler setText sur la variable de classe, tu peux ajouter this. devant
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

Discussions similaires

  1. Avoir les 4 derniers résultats sur une grande table
    Par Sam31000 dans le forum Requêtes
    Réponses: 5
    Dernier message: 22/08/2012, 13h52
  2. Mettre tous les chiffres en indices sur une colonne
    Par ledisciple dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 30/08/2011, 15h29
  3. Réponses: 2
    Dernier message: 17/11/2010, 19h55
  4. Réponses: 11
    Dernier message: 14/10/2008, 10h21
  5. Compter les lignes du résultat d'une requete
    Par mfavier dans le forum ASP
    Réponses: 4
    Dernier message: 30/06/2006, 21h05

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