Reputation: 163
I am carrying out addition of decimals with textInputLayout, the problem is that at the moment of calling isEmpty () to show an error in case the fields are empty, this option does not appear.
I want to do it this way
button.setOnClickListener {
val numberOne = textInputLayout.editText?.text.toString().toDouble()
val numberTwo = textInputLayout2.editText?.text.toString().toDouble()
val reult = numberOne + numberTwo
if (numberOne./*no appears isEmpty*/){
textInputLayout.error = ("enter number")
}else
if (numberTwo./*no appears isEmpty*/){
textInputLayout2.error = ("enter number")
}else {
textView.text = reult.toString()
}
}
xmlns
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/textInputLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="60dp"
android:hint="@string/numero"
app:layout_constraintEnd_toEndOf="parent"
app:errorEnabled="true"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox">
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/textInputLayout2"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="120dp"
android:hint="@string/numero2"
app:errorEnabled="true"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</com.google.android.material.textfield.TextInputLayout>
Upvotes: 1
Views: 2364
Reputation: 363479
You can use something like:
<com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputEditText
android:inputType="numberDecimal"
.../>
And you can check the value with:
val double: Double? = textInputLayout.editText?.text.toString().toDoubleOrNull()
val double2: Double? = textInputLayout2.editText?.text.toString().toDoubleOrNull()
if (double != null){
//Double1 is a number
textInputLayout.error = ""
if (double2 != null){
//Double2 is a number
textInputLayout2.error = ""
textview.text = (double+double2).toString()
} else {
//Double2 is not a number
textInputLayout2.error = "Error"
textview.text = ""
}
} else {
//Double1 is not a number
textInputLayout.error = "Error"
textview.text = ""
}
Upvotes: 3
Reputation: 31
numberOne and numberTwo are double
val numberOne = textInputLayout.editText?.text.toString().toDouble()
isEmpty() is a string function try numberOne.toString().isEmpty() and same for numberTwo
Upvotes: 0