有什么办法停止崩溃在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") }
图片
尝试这个
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