0
votes

Calculatrice App se bloque lors de l'ajout / soustrait / Diviser / Multiplication Cliquez deux fois

Je fais une simple calculatrice. Tout fonctionne bien. Mais le problème est que lorsque je clique sur Ajouter / Soustraire / Diviser / Diviser / Multiplication Button, l'application se bloque.

J'ai trouvé le problème de logcat qui est 'java.lang.stringtoreal.parsedouble (stringtoreal.java:248)' P>

J'ai ajouté le logcat mais ne pas résoudre. P>

My Code: P>

02-11 05:11:54.958 2274-2274/com.example.android.calculator 
E/OpenGLRenderer: Getting MAX_TEXTURE_SIZE from GradienCache
MAX_TEXTURE_SIZE: 16384
02-11 05:15:27.626 2274-2274/com.example.android.calculator 
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.android.calculator, PID: 2274
java.lang.NumberFormatException: Invalid double: ""
    at java.lang.StringToReal.invalidReal(StringToReal.java:63)
    at java.lang.StringToReal.parseDouble(StringToReal.java:248)
    at java.lang.Double.parseDouble(Double.java:295)
    at

com.example.android.calculator.MainActivity$10.onClick(MainActivity.java:102)


1 commentaires

Vous définissez un texte sur NULL après une opération. TextView1.SetText (null) . Lorsque vous essayez de cliquer à nouveau, il vous donne une chaîne vide car vous obtenez du texte comme celui-ci textview1.getText () + "" .


3 Réponses :


0
votes

textview1.settext (textview1.getText () + "1"); Cette ligne peut être écrite comme

textview1.setText (textviever1.getext (). Tostring () + "1");

Pour analyser votre valeur au format de chaîne, essayez ceci!


0 commentaires

0
votes

Votre texte TextView se réglage sur "" Après chaque fois que vous cliquez sur Ajouter / Soustraire / Diviser / Diviser / Diviser et vous ne pouvez pas convertir "" en double, vous devez vérifier la valeur d'abord avant de la convertir en double > Xxx

}


0 commentaires

1
votes

Oui, il génère l'erreur du NumberFormatException code> car lorsque vous obtenez le texte de la TextView comme ce numone = double.Parsedouble (TextView1.getText () + ""); / code> La valeur de TextView ne se convertit pas en double en raison de ""

Essayez comme ça et fonctionnera bien p>

if(!TextUtils.isEmpty(textView1.getText())){

     numOne=Double.parseDouble(textView1.getText());

}


0 commentaires