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; 
} 
相關問題