Есть ли способ остановить сбой в пустое десятичное значение в EditText в kotlin?

Мне нужно помочь в моем приложении, когда мы поместим пустое значение. Когда я пытаюсь вычислить, есть ли способ предотвратить сбой, если нет значения. Просто мне нужно, чтобы, когда я нажимаю кнопку расчета, он устанавливает текст «Положить значение» в ответы

Когда я пытаюсь преобразовать строку в тип DecimalorNull, просто получаю ошибку в вычислении и предотвращаю ее создание

вот мой макет xml

<EditText android:id="@+id/distance" android:layout_width="wrap_content" android:layout_height="wrap_content" android:ems="10" android:hint="@string/distance" android:inputType="number|numberDecimal|numberSigned" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.094" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintVertical_bias="0.034" /> <EditText android:id="@+id/initalVelocity" android:layout_width="wrap_content" android:layout_height="wrap_content" android:ems="10" android:hint="@string/initialVelocity" android:inputType="number|numberDecimal|numberSigned" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.094" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintVertical_bias="0.133" /> <EditText android:id="@+id/time" android:layout_width="wrap_content" android:layout_height="wrap_content" android:ems="10" android:hint="@string/time" android:inputType="number|numberDecimal|numberSigned" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.094" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintVertical_bias="0.232" /> <TextView android:id="@+id/answer" android:layout_width="219dp" android:layout_height="37dp" android:text="@string/answer" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.096" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintVertical_bias="0.35" /> <Button android:id="@+id/calculate" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/calculate" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintVertical_bias="0.462" /> 

Вот моя основная деятельность kt file:

 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") } 

Образ

! [введите описание изображения здесь

http://img.ohandroid.com/android/gFom6.png

http://img.ohandroid.com/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() } } 

    Здесь вы можете найти более четкую форму решения и тип-преобразование-kitlin