2017-10-16 3 views
0

私は検証する必要があるnumberDecimal形式を受け入れるEditText(inputValue)を持っています。このチェックテキストを空白のままにすると、各ボタンをクリックするたびに即座にプログラムがクラッシュすることがあります。フォームに0を入力し、ボタンをクリックすると、検証は期待通りに機能します。あなたのEdittext doesntのは、任意の値を持っていて、nullオブジェクト参照の上.trim().toDouble()を呼び出すので、あなたがクラッシュ与えEditText値を検証するとアプリケーションがクラッシュする

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

修正しました。指摘していただきありがとうございます。 – Alan

答えて

1

ボタンをクリックします。 trimメソッドとtodoubleメソッドを呼び出す前に、nullチェック条件をチェックしてください。

0

toDouble()の代わりにtoDoubleOrNull()を使用するか、try-catchにその行をラップしてNumberFormatExceptionを処理してください。

関連する問題