2016-03-26 2 views
0

Donc j'ai un formulaire de connexion, quand l'utilisateur clique sur le login je vais vérifier les entrées.textinputlayout errorenabled et montrant des erreurs

D'abord ce que je fais, en cliquant sur le bouton de connexion j'appelle textinputlayout.seterrorenabled(false), puis quand l'appel API est terminée et j'ai une erreur sur mon editttext j'appelle textinputlayout.seterrorenabled(true), textinputlayout.seterror(message). Tout est bon, maintenant je clique sur le login et répète le même processus textinputlayout.seterrorenabled(false) et après l'appel de l'API est sur textinputlayout.seterrorenabled(true), textinputlayout.seterror(message). Cependant, cette fois le message ne s'affiche pas. Quel est le problème?

  <android.support.design.widget.TextInputLayout 
       android:id="@+id/usernameField1" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content"> 
       <EditText 
        android:id="@+id/usernameField" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:hint="@string/user_name" 
        android:textColorHint="#808080" 
        android:paddingBottom="@dimen/tendp" 
        android:paddingLeft="@dimen/tendp" 
        android:paddingRight="@dimen/tendp" 
        android:paddingTop="@dimen/tendp" 
        android:textSize="@dimen/textSize" /> 
      </android.support.design.widget.TextInputLayout> 
      <android.support.design.widget.TextInputLayout 
       android:id="@+id/passwordField1" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content"> 
       <EditText 
        android:id="@+id/passwordField" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:hint="@string/password" 
        android:textColorHint="#808080" 
        android:paddingBottom="@dimen/tendp" 
        android:inputType="textPassword" 
        android:paddingLeft="@dimen/tendp" 
        android:paddingRight="@dimen/tendp" 
        android:paddingTop="@dimen/tendp" 
        android:textSize="@dimen/textSize" /> 
      </android.support.design.widget.TextInputLayout> 
       <Button 
        android:id="@+id/login" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:layout_gravity="center" 
        android:gravity="center" 
        android:background="?attr/selectableItemBackground" 
        android:text="@string/login" 
        android:visibility="gone" 
        android:textColor="@android:color/white" 
        android:textSize="@dimen/textSize" > 
       </Button> 



    final Button login = (Button) findViewById(R.id.login); 
    // login.setOnClickListener(new OnClickListener() { 

     login.setOnClickListener(here i set my textinputlayout to errorenabled false or seterror null // start an asynctask 



    here in asynctask onpostexecute i set the errorenabled(true) and set error(the message) 
+0

s'il vous plaît un peu de code ici. –

+0

pourrait être un problème de millisecondes. j'appelle seterror ("message1") puis directement seterror ("message2") .. sa prise de message 1 et pas de message 2. – user3278732

+0

oui pourrait être bug dans android http://stackoverflow.com/questions/34242902/textinputlayout-seterror- feuilles-vide-espace-après-compensation-l'erreur mon problème est d'avoir beaucoup d'espace quand il est vérifié correct. un autre problème est que l'erreur n'est pas affichée après avoir été vérifiée et modifiée au mauvais choix. – user3278732

Répondre

0

Ne pas utiliser textinputlayout.seterrorenabled(true) ou textinputlayout.seterrorenabled(true) juste textinputlayout.seterror(message) si vous souhaitez afficher un message ou textinputlayout.seterror(null) si vous ne

+0

ne fonctionne pas, la première fois que ça se voit. la deuxième fois ça ne marche pas. – user3278732

+0

ajoutez votre code s'il vous plaît – KDeogharkar

+0

pourrait être un problème de millisecondes. J'appelle seterror ("message1") puis directement seterror ("message2") .. en prenant le message 1 et non le message 2. – user3278732

0

Vous ne définissez pas SetError à textinputlayout. vous définissez à edittext.

EditText usernameField=(EditText)findViewById(R.id.usernameField); 
EditText passwordField=(EditText)findViewById(R.id.passwordField); 

Lorsque, cliquez sur le bouton puis ajoutez

usernameField.setError("error message"); 
passwordField.setError("error message");