有什么办法停止崩溃在kotlin的EditText中的空十进制值?

当我们把一个空的值,我需要在我的应用程序的帮助。 当我尝试计算是否有任何方法来防止崩溃,如果没有价值。 只是我需要,当我按下计算按钮,它将文本设置为“把一个值”的答案

当我尝试将字符串转换为DecimalorNulltypes只是在计算中得到错误,并防止它建立

这里是我的布局xml

    

这里是我的主要活动kt文件:

 calculate.setOnClickListener { val s = distance.text.toString().toDouble() val u = initalVelocity.text.toString().toDouble() val t = time.text.toString().toDouble() val a = (((2* s))-(2*(u*t)))/(t*t) answer.setText("answer $am/(s)^2") } 

图片

![在这里输入图片描述

android/gFom6.png

android/QJZFf.png

尝试这个

 calculate.setOnClickListener { if((distance.text.toString().lenght>0) && (initalVelocity.text.toString().lenght>0) && (time.text.toString().lenght>0)) { val s = distance.text.toString().toDouble() val u = initalVelocity.text.toString().toDouble() val t = time.text.toString().toDouble() val a = (((2* s))-(2*(u*t)))/(t*t) answer.setText("answer $am/(s)^2") }else{ //String null } } 

首先点击按钮,你必须检查EditText是否有任何值,否则不计算

这里是例子

 btn.setOnClickListener{ //read value from `EditText` to a String variable val s = distance.text.toString().trim().toDouble() val u = initalVelocity.text.toString().trim().toDouble() val t = time.text.toString().trim().toDouble() //check if the `EditText` have values or not if(s > 0 && u > 0 && t > 0) { //calculate val a = (((2* s))-(2*(u*t)))/(t*t) answer.setText("answer $am/(s)^2") }else{ Toast.makeText(applicationContext, "Please value! ", Toast.LENGTH_SHORT).show() } } 

你可以在这里find更清晰的解决方案然后键入conversion-kitlin