0

Je demande la méthode setError() sur TextInputLayout et TextInputEditText mais je reçois cette erreur,mise en page de saisie de texte lance erreur sur la méthode SetError

Ce que je suis en train de réaliser est le tooltip.I d'erreur suis pas d'humeur d'utiliser toutes les bibliothèques de tiers pour y parvenir. \

Voici ce que j'ai essayé et aucune de ces travaillé,

Error in TextInputLayout dont show again even call setErrorEnabled(true)

TextInputLayout setErrorEnabled doesn't create new TextView object

TextInputLayout.setError() leaves empty space after clearing the error

TextInputLayout not showing error message after clearing

setError for TextInputLayout showing Error

TextInputLayout error after enter value into edittext

textinputlayout errorenabled and showing errors

textinputlayout errorenabled and showing errors

TextInputLayout's errorview is not removed when removing error message

Gradle

compile 'com.android.support:appcompat-v7:25.3.1' 
    compile 'com.android.support:design:25.3.1' 
    compile 'com.android.support:cardview-v7:25.3.1' 
    compile 'com.android.support:support-v4:25.3.1' 

Erreur Stacktrace,

Process: com.example.demo, PID: 31847 
                     java.lang.UnsupportedOperationException: Failed to resolve attribute at index 24: TypedValue{t=0x3/d=0x1ec "res/color/secondary_text_material_dark.xml" a=1 r=0x1060120} 
                      at android.content.res.TypedArray.getColor(TypedArray.java:449) 
                      at android.widget.TextView.<init>(TextView.java:741) 
                      at android.widget.TextView.<init>(TextView.java:674) 
                      at android.support.v7.widget.AppCompatTextView.<init>(AppCompatTextView.java:62) 
                      at android.support.v7.widget.AppCompatTextView.<init>(AppCompatTextView.java:58) 
                      at android.support.v7.widget.AppCompatTextView.<init>(AppCompatTextView.java:54) 
                      at android.support.design.widget.TextInputLayout.setErrorEnabled(TextInputLayout.java:602) 
                      at com.example.demo.DemoActivity.canLogin(DemoActivity.java:163) 
                      at com.example.demo.DemoActivity.access$000(DemoActivity.java:24) 
                      at com.example.demo.DemoActivity$1.onClick(DemoActivity.java:54) 
                      at android.view.View.performClick(View.java:5207) 
                      at android.view.View$PerformClick.run(View.java:21177) 
                      at android.os.Handler.handleCallback(Handler.java:742) 
                      at android.os.Handler.dispatchMessage(Handler.java:95) 
                      at android.os.Looper.loop(Looper.java:154) 
                      at android.app.ActivityThread.main(ActivityThread.java:5527) 
                      at java.lang.reflect.Method.invoke(Native Method) 
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739) 
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:629) 

Voici le XML

<android.support.design.widget.TextInputLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:hint="UserName" 
     android:theme="@style/txtIptLayout" 
     android:layout_marginTop="10dp" 
     app:backgroundTint="@color/white" 
     android:id="@+id/tilUsername" 
     app:errorTextAppearance="@style/Theme.AppCompat" 
     > 
    <android.support.design.widget.TextInputEditText 
     style="@style/txtEditTxtLayout" 
     app:backgroundTint="@color/white" 
     android:id="@+id/etUserName" 
     android:maxLines="1" 
     android:inputType="text" 

     /> 

    </android.support.design.widget.TextInputLayout> 

    <android.support.design.widget.TextInputLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:hint="Password" 
     android:theme="@style/txtIptLayout" 
     app:passwordToggleEnabled="true" 
     app:passwordToggleDrawable="@drawable/ic_widget_icon_txtiptlayout" 
     app:passwordToggleTint="@color/white" 
     android:layout_marginTop="10dp" 
     app:backgroundTint="@color/white" 
     app:errorTextAppearance="@style/Theme.AppCompat" 
     android:id="@+id/tilPassword" 
     > 
     <android.support.design.widget.TextInputEditText 
      style="@style/txtEditTxtLayout" 
      android:inputType="textPassword" 
      android:id="@+id/etPassword" 
      app:backgroundTint="@color/white" 


      /> 

    </android.support.design.widget.TextInputLayout> 

Voici ce que je demande, ce qui est exactement où l'erreur est levée ,

tilPassword.setError("Password required"); 
       tilPassword.setErrorEnabled(true); 
+0

Juste pour info, le texte d'erreur de 'TextInputLayout' n'est pas une "info-bulle d'erreur qui survole la zone de texte". Il apparaît sous le 'EditText'. Une erreur de 'EditText' est une info-bulle, cependant. –

+0

@MikeM. Ok, il n'apparaît pas non plus dessous. il n'affiche pas à la place cette erreur est levée. Alors peut-il être rectifié? –

Répondre

0

Essayez ceci:

tilPassword.getEditText().setError("Password required"); 
    tilPassword..setErrorEnabled(true); 
+0

Nope qui n'a pas fonctionné –

0

Je ne sais pas comment, mais la suppression de l'attribut thème en XML android:theme="@style/txtIptLayout" travaillé. L'hypothèse serait que remplacer le thème de XML remplacera le thème de l'info-bulle et donc l'erreur.