Jump to content

Archived

This topic is now archived and is closed to further replies.

Atari45

Mise en place de calculs

Recommended Posts

Bonjour,

 

Je développe un application Android et je rencontre quelques soucis..

 

Je cherche à mettre en place des calculs avec des variables editText

float hte = Float.parseFloat(ht.getText().toString());
float nbObjDiste = Float.parseFloat(nbObjDist.getText().toString());
float nbFocalLene = Float.parseFloat(nbFocalLen.getText().toString());
	            	
nbObjSize2.setText(String.valueOf(hte * (nbObjDiste / nbFocalLene - 1)));

Le problème c'est des que je lance l’émulateur, l'application se coupe et ne fonctionne pas.. Les LogCat me dise un problème a la première ligne que je viens de vous fournir.

 

ht, nbObjDist et nbFocalLen sont 3 variables EditText déclaré comme ceci : ht = (EditText) findViewById(R.id.nb2);

 

Voila j’espère avoir été clair et espère un peu d'aide ;)

 

Merci

Share this post


Link to post
Share on other sites

Et que dit précisément le LogCat ? quelle est l'exception qui se produit ?

Share this post


Link to post
Share on other sites

Les LogCat :

 

- FATAL EXCEPTION : main

- at com.example.lenssensor.MainActivity$2.onClick(MainActivity.java:84   => correspond à la première ligne du post du dessus.

 

Et quand je lance l'appli, la premiere Activity se lance. Et des que j'appuie sur un bouton radio, "Unfortunately, lesSensor has stopped"

Share this post


Link to post
Share on other sites

Il manque l'information principale : quelle est l'exception qui s'est produite ? Tu peux mettre un extrait plus important du log ?

Share this post


Link to post
Share on other sites

FATAL EXCEPTION : main

java.lang.NumberFormatException : Invalid float: ""

at java.lang.StringToReal.invalid(StringToReal.java:63)

at java.lang.StringToReal.parseFloat(StringToReal.java:289)

at java.lang.Float.parseFloat(Float.java:300)

at java.lang.Float.valueOf(Float.java:337)

at com.example.lenssensor.MainActivity$2.onClick(MainActivity.java:84

at android.view.View.performClick(View.java:4204)

... Et encore quelques erreurs at android

 

J'ai fais un imprim ecran mais je sais pas comment le mettre dans la réponse alors j'ai copier les premières lignes du LogCat

Share this post


Link to post
Share on other sites
java.lang.NumberFormatException : Invalid float: ""

Ta conversion en float n'est pas possible si le editText est vide.

 

edit : Petite astuce au passage, si tu veut que la valeur vide soit 0, utilise un try catch 

Share this post


Link to post
Share on other sites

Ok cela veut dire que : float hte = Float.parseFloat(ht.getText().toString()); est vide...

 

Pourtant la variable ht comporte quelque chose... Hmm bizarre ça !

 

edit : J'ai comme logcat apres un autre essai : java.lang.NumberFormatException: Invalid float "3,600"

Share this post


Link to post
Share on other sites

Ta valeur doit être formatée de cette manière 3.600.

Pense à mettre l'inputType de ton editText en numeric, l'utilisateur ne pourra rentrer que des valeurs numériques valables de cette manière.

Y'a plusieurs manières de le faire je te laisse chercher sur google ;-)

Share this post


Link to post
Share on other sites

Mon inputType est  : android:inputType="numberDecimal" donc deja en type numeric

 

edit : j'ai changé mes valeurs en mettant des point au lieu des virgules, j'effectue un Toast de "ht" et j'obtiens 3.000

Ensuite, j'aimerais faire un calcul avec 3 variables que l'utilisateur rentre.

 

Ces 3 valeurs sont des EditText et j'aimerais qu'un calcul se fasse et mette la valeur obtenue dans un EditText... 

 

Quel sont vos propositions ?

Share this post


Link to post
Share on other sites

Bon fini de reflechir.. Sujet résolu.

 

Il suffisai de mettre des points à la place des virgules comme le disai FEMTO et merci également à CHPIL d'avoir commencé à m'aider.

 

Bonne soirée a tous et vive Android ;)

Share this post


Link to post
Share on other sites





×
×
  • Create New...