J'effectue l'ajout de décimales avec textInputLayout, le problème est qu'au moment de l'appel de isEmpty () pour afficher une erreur au cas où les champs sont vides, cette option n'apparaît pas.

Je veux le faire de cette façon

 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>

 

 
0
Jorge Leonardo 1 sept. 2020 à 17:58

2 réponses

Meilleure réponse

Vous pouvez utiliser quelque chose comme:

        <com.google.android.material.textfield.TextInputLayout>

            <com.google.android.material.textfield.TextInputEditText
                android:inputType="numberDecimal"
                .../>

Et vous pouvez vérifier la valeur avec:

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 = ""
 }
1
Gabriele Mariotti 3 sept. 2020 à 07:18

NumberOne et numberTwo sont doubles
val numberOne = textInputLayout.editText? .text.toString (). toDouble ()

IsEmpty () est une fonction de chaîne try numberOne.toString (). isEmpty () et idem pour numberTwo

0
Octavian Vilceanu 1 sept. 2020 à 16:45