英文:
How to put an error when my textInputLayout is empty
问题
button.setOnClickListener {
val numberOne = textInputLayout.editText?.text.toString().toDouble()
val numberTwo = textInputLayout2.editText?.text.toString().toDouble()
val result = numberOne + numberTwo
if (numberOne.isNaN()) {
textInputLayout.error = "请输入数字"
} else if (numberTwo.isNaN()) {
textInputLayout2.error = "请输入数字"
} else {
textView.text = result.toString()
}
}
<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>
英文:
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>
答案1
得分: 3
你可以使用类似以下的代码片段:
<com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputEditText
android:inputType="numberDecimal"
.../>
</com.google.android.material.textfield.TextInputLayout>
你可以使用以下代码检查值:
val double: Double? = textInputLayout.editText?.text.toString().toDoubleOrNull()
val double2: Double? = textInputLayout2.editText?.text.toString().toDoubleOrNull()
if (double != null){
// Double1 是一个数字
textInputLayout.error = ""
if (double2 != null){
// Double2 是一个数字
textInputLayout2.error = ""
textview.text = (double + double2).toString()
} else {
// Double2 不是一个数字
textInputLayout2.error = "错误"
textview.text = ""
}
} else {
// Double1 不是一个数字
textInputLayout.error = "错误"
textview.text = ""
}
请注意,这里提供的只是代码的翻译,没有其他额外内容。
英文:
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 = ""
}
答案2
得分: 0
numberOne 和 numberTwo 是双精度浮点数
val numberOne = textInputLayout.editText?.text.toString().toDouble()
isEmpty() 是一个字符串函数
尝试使用 numberOne.toString().isEmpty(),以及对 numberTwo 进行相同操作。
英文:
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
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论