0
public class MainActivity extends Activity { 
private EditText emailEditText; 
private EditText passEditText; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    emailEditText = (EditText) findViewById(R.id.editText_email); 
    passEditText = (EditText) findViewById(R.id.editText_password); 

    findViewById(R.id.btn_signup).setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View arg0) { 

      final String email = emailEditText.getText().toString(); 
      if (!isValidEmail(email)) { 
       emailEditText.setError("Invalid Email"); 

      } 

      final String pass = passEditText.getText().toString(); 
      if (!isValidPassword(pass)) { 
       passEditText.setError("Invalid Password"); 
      } 

     } 
    }); 
} 

J'utilise ce code mais il affiche le message d'erreur ci-dessous, je veux afficher le message adjacent au EditText c'est à dire; à droite de EditText.Affichage du message d'erreur dans Android edittext sur le côté droit lors de l'utilisation de validation plutôt que sur le dessous de modifier le texte

+0

qui est selon votre thème – singularity

+0

s'il n'y a pas assez d'espace sur la côté droit ? –

+0

@BatCat cette question est différente de ce que vous avez suggéré –

Répondre

0

au lieu d'utiliser EditText utiliser TextInputLayout comme:

<android.support.design.widget.TextInputLayout 
    android:id="@+id/text_input_layout" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    app:errorEnabled="true"> 

    <android.support.design.widget.TextInputEditText 
     android:id="@+id/edit_text" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:hint="Enter your name" /> 

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

Lorsque vous voulez setError Il suffit de prendre la référence de TextInputLayout et setError sur et en cas d'erreur est résolu puis retirez-le par Passin null dans setError

0

Pour afficher le message d'erreur comme vous l'avez montré, Utiliser mon code , Son code réalisable.

<android.support.design.widget.TextInputLayout 
    android:layout_width="match_parent" 
    android:layout_marginTop="20dp" 
    android:layout_height="wrap_content"> 

    <EditText 
     android:id="@+id/userId" 
     android:inputType="text" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:text="" 
     android:hint="User ID" /> 

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


<android.support.design.widget.TextInputLayout 
    android:layout_width="match_parent" 
    android:inputType="textPassword" 
    app:passwordToggleEnabled="true" 
    android:layout_height="wrap_content"> 

    <EditText 
     android:id="@+id/password" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:inputType="textPassword" 
     android:text="" 
     android:hint="Password" /> 

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

<medmylife.deliverymedcine.font.Railway_Regular 
    android:layout_marginTop="10dp" 
    android:gravity="right" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:text="Forget Password?" 
    android:textColor="@color/blue" 
    android:textSize="16dp"/> 

<Button 
    android:layout_marginTop="20dp" 
    android:textSize="16dp" 
    android:id="@+id/loginBtn" 
    android:textAllCaps="false" 
    android:background="@color/blue" 
    android:layout_width="match_parent" 
    android:layout_height="50dp" 
    android:textColor="@color/white" 
    android:text="LOGIN" 
    /> 

Mettez ci-dessous le code sur votre Activity.class

loginBtn.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      if (utils.haveNetworkConnection()) { 
       if (validationDetails()) { 
        jsonRequest(); 
       } 
      }else { 
       utils.showtoast("Internet Connection Not Availble"); 
      } 
     } 
    }); 

Mettez ci-dessous le code extérieur de la onCreate()

private boolean validationDetails() { 
    if (userId.getText().toString().isEmpty()) { 
     userId.setError("Enter User ID"); 
     return false; 
    } 
    if (passwd.getText().toString().isEmpty()) { 
     passwd.setError("Enter Password"); 
     return false; 
    } 
    return true; 
}