2017-10-16 9 views
0

J'ai un EditText (inputValue) qui accepte le format numberDecimal, que j'ai besoin de valider. La fonction de validation est appelée par:La validation des valeurs EditText provoque l'application

 buttonCalculate.setOnClickListener { 
      pickFunction() } 

Si cette EditText est laissé vide, je reçois un plantage du programme immédiat après chaque clic de bouton. Si je remplis le formulaire avec un zéro, puis cliquez sur le bouton, la validation fonctionne comme prévu.

fun pickFunction() { 



     val s: String = inputValue.getText().toString().trim() 

     val d = inputValue.getText().toString().toDouble() 

      if(s.isNullOrEmpty()) { 
       Toast.makeText(applicationContext, "Blank value entered", Toast.LENGTH_SHORT).show() 
      return 
     } 


     if(d <= 0) 
     { 
      Toast.makeText(applicationContext, "Zero value entered", Toast.LENGTH_SHORT).show() 
      return 
     } 

    // go do something with valid value 

} 
+0

Correction, merci de l'avoir signalé. – Alan

Répondre

1

clics de bouton vous donnant tomber en panne parce que votre Edittext ne marche pas avoir une valeur et que vous appelez .trim() et .toDouble() sur référence d'objet nul. Veuillez vérifier la condition null check avant d'appeler les méthodes trim et todouble.

0

Utilisez toDoubleOrNull() au lieu de toDouble() ou placez cette ligne dans try-catch pour gérer NumberFormatException.