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éveloppement]Problèmes d'Integer.parseInt ou de récupération de texte.


Sujet :

Android

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 11
    Points : 12
    Points
    12
    Par défaut [Développement]Problèmes d'Integer.parseInt ou de récupération de texte.
    Bonjour, je suis nouveau sur ce forum celà m'embête un peu que pour mon premier poste je vous expose un problème.
    Je suis un novice en programmation pour Android et j'ai actuellement un petit problèmes, n'ayant rien trouvé sur la toile pour m'aider particulierement je vous l'expose ici.
    Dans le cadre d'un projet de simulation de crédits pour une entreprise immobilière, je dois créer une application sur android pour qu'une personne lambda puisse simuler un crédits.

    Le problème est que quand j'essaye de récupérer les données du formulaire j'aimerais bien les transformers en int mais quand j'utilise Integer.parseInt une exception est levée.En faisant des tests je me suis aperçu que quand j'utilisais la fonction monEditText.toString() je récupérais l'adresse de l'édit texte et non le contenu de celui ci, enfin je crois que c'est son adresse, donc je suppose que c'est pour cela que mon parseInt lève une NumberFormatException.

    Je voudrais savoir comment récupérer correctement la valeur d'un EditText et de le transformer en String ou en int.Je vous fournis une petite portion de mon code pour essayer de vous expliquer mieux que ça (attention mon code n'est pas terrible mais c'est juste pour avancer pour l'instant c'est très loin d'être finalisé, l'algorithme de calcul du prêts est faux lui aussi c'est juste pour tester aussi):


    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
    public boolean onCreateOptionsMenu(Menu menu) {
    	MenuInflater inflater = getMenuInflater();
    	inflater.inflate(R.menu.options_menu, menu);
    	return true;
    	}
     
        public boolean onOptionsItemSelected(MenuItem item) {
        	switch (item.getItemId()) {
        	case R.id.item02:
     
        	this.setContentView(R.layout.simu_pret);
     
        	Button btCalcul = (Button) findViewById(R.id.button);
     
        	EditText montant = (EditText) findViewById(R.id.entry);
        	final int mon = Integer.parseInt(montant.getText().toString());
     
        	EditText duree = (EditText) findViewById(R.id.entry2);
        	final int dur = Integer.parseInt(duree.getText().toString());
     
        	EditText taux = (EditText) findViewById(R.id.entry3);
        	final int tau = Integer.parseInt(taux.getText().toString());
     
        	final TextView resultat = (TextView) findViewById(R.id.text4);
     
        	btCalcul.setOnClickListener(new Button.OnClickListener() {
        		public void onClick(View v) {
     
        		 int result = (mon +dur)*tau;
        		 String res = new String().valueOf(result);
     
        		 resultat.setText(res);
        		}
        		});
     
     
        	return true;
        	}
        	return false;
        	}
    Merci et désolé par avance pour ce petit bout de code qui fait mal aux yeux.

  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 : 40
    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
    Points : 4 240
    Points
    4 240
    Par défaut
    Salut,

    Pour récupérer la valeur saisie dans un EditText :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    EditText tbValue = (EditText)this.findViewById(R.id.EditTextValue);
    String value = "0";
    if (tbValue != null) {
        value = tbValue.getText().toString();
    }
    Pour convertir un String en int, voici deux solutions (parmis d'autres) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    String value = "10";
    int valint = Integer.parseInt(value);
    int valint2 = Integer.valueOf(value);
    Si vous jugez mon post utile dans la résolution de votre problème, n'hésitez pas à utiliser le système de vote afin d'améliorer la qualité du forum

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 11
    Points : 12
    Points
    12
    Par défaut
    Mea Culpa, Mea Culpa, Mea Maxima Culpa, j'ai réussi à me débrouiller hier pour cette exception, je suis un imbécile tellement l'habitude sous éclipse pour un code java normal qu'il met une erreur si on a pas gêré les exceptions en utilisant un try...catch, que ne voyans pas d'erreur je n'ai pas vu l'utiliter d'en mettre un juste pour essayer mon application vite fait, du coup ça ne fonctionnait pas voici mon code finalisé avec le try catch pour empecher les erreurs :

    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
    public boolean onCreateOptionsMenu(Menu menu) {
    	MenuInflater inflater = getMenuInflater();
    	inflater.inflate(R.menu.options_menu, menu);
    	return true;
    	}
     
        public boolean onOptionsItemSelected(MenuItem item) {
        	switch (item.getItemId()) {
        	case R.id.item02:
     
        	this.setContentView(R.layout.simu_pret);
     
        	Button btCalcul = (Button) findViewById(R.id.button);
     
        	final EditText montant = (EditText) findViewById(R.id.entry);
     
        	final EditText duree = (EditText) findViewById(R.id.entry2);
     
        	final EditText taux = (EditText) findViewById(R.id.entry3);
     
     
        	final TextView resultat = (TextView) findViewById(R.id.text4);
     
        	btCalcul.setOnClickListener(new Button.OnClickListener() {
        		public void onClick(View v) {
        		try{
        		 int mon = Integer.parseInt(montant.getText().toString());
        		 int dur = Integer.parseInt(duree.getText().toString());
        		 int tau = Integer.parseInt(taux.getText().toString());
        		 //TODO faire le vrai algorithme de calcul
        		 int result = (mon +dur)*tau;
     
        		 String res = new String().valueOf(result);
     
        		 resultat.setText(res);
        		}
        		catch(NumberFormatException e)
        		{
        			//TODO ici mettre un message d'erreur
        		}
        		}
        		});
     
     
        	return true;
        	}
        	return false;
        	}
    Merci à MrDuChnok de m'avoir répondu du coup je n'ai pas pensé à encadrer la récupérations de mes données dans un string d'un if en cas de chaine vide.Je pense que ce sujet est résolu.

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

Discussions similaires

  1. problème en Integer.parseInt
    Par aroua dans le forum Général Java
    Réponses: 3
    Dernier message: 11/04/2008, 15h48
  2. Reversibilite Integer.parseInt et Integer.toHexString
    Par Panneau dans le forum Langage
    Réponses: 4
    Dernier message: 14/08/2007, 17h37
  3. Problème récupération multiples 'text'
    Par webrider dans le forum Langage
    Réponses: 4
    Dernier message: 12/02/2007, 11h36
  4. [MySQL] problème de caractères lors de la récupération des données
    Par lecail65 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 02/08/2006, 16h45
  5. Problème de récupération de texte de formulaire
    Par bigourson dans le forum Langage
    Réponses: 4
    Dernier message: 15/09/2004, 16h27

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