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"); 
      } 

     } 
    }); 
} 

我使用这个代码验证时显示在android系统的EditText错误消息右侧但是它显示了以下错误消息,我想显示相邻EditText消息即;右边EditText使用而不是在下面编辑文本

<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> 

当你想setError只取它的TextInputLayoutsetError参考,当错误被解决,然后由经过的null其删除:

+0

之外多数民众赞成根据你的主题 – singularity

+0

如果什么没有足够的空间在右边 ? –

+0

@BatCat这个问题与你建议的不同 –

回答

0

而是采用EditText使用TextInputLayout喜欢的在setError

0

要显示如您所示的错误消息,请使用我的代码,它的可行代码。

<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" 
    /> 

把下面的代码对你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"); 
      } 
     } 
    }); 

把下面的代码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; 
} 
相关问题