2012-08-02 84 views

回答

60

你有你的屏幕截圖顯示可以使用實現彈出效果Android的內置上EditText部件setError(String)方法。

另外,您可以使用我創作的Android Saripaar庫來利用註釋的強大功能。

第一添加庫:

compile 'com.mobsandgeeks:android-saripaar:2.0.2' 

該庫是非常簡單易用。在您的活動中註釋了您想要驗證的View引用,如下例所示。

@Order(1) 
private EditText fieldEditText; 

@Order(2) 
@Checked(message = "You must agree to the terms.") 
private CheckBox iAgreeCheckBox; 

@Order(3) 
@Length(min = 3, message = "Enter atleast 3 characters.") 
@Pattern(regex = "[A-Za-z]+", message = "Should contain only alphabets") 
private TextView regexTextView; 

@Order(4) 
@Password(min = 6, scheme = Password.Scheme.ALPHA_NUMERIC_MIXED_CASE_SYMBOLS) 
private EditText passwordEditText; 

@Order(5) 
@ConfirmPassword 
private EditText confirmPasswordEditText; 

order屬性指定在其中字段具有要驗證的順序。

在您的onCreate()方法中實例化一個新的Validator對象。並在您的任何事件偵聽器中調用validator.validate()

您將收到onSuccessonFailure方法ValidationListener的回調。

如果你想顯示彈出作爲顯示圖像上面然後進行以下操作,

public void onValidationFailed(View failedView, Rule<?> failedRule) { 
    if (failedView instanceof Checkable) { 
     Toast.makeText(this, failedRule.getFailureMessage(), Toast.LENGTH_SHORT).show(); 
    } else if (failedView instanceof TextView) { 
     TextView view = (TextView) failedView; 
     view.requestFocus(); 
     view.setError(failedRule.getFailureMessage()); 
    } 
} 

希望有所幫助。

+2

Android Saripaar絕對是最好的選擇! :D – 2013-12-24 04:29:30

+0

手機號碼驗證如何? – 2013-12-30 11:20:00

+0

@RegEx註解 - 使用正則表達式,電話號碼沒有標準格式。 – 2013-12-30 12:34:42

4

爲Android完全實現三個步驟中驗證。開發人員應該專注於他們令人敬畏的代碼,並讓圖書館做模板。

三種類型的驗證類型:

  • TEXT_INPUT_LAYOUT
  • UNDERLABEL
  • 染色
  • BASIC

我給你舉例UNDERLABEL驗證。

步驟爲實現Android的驗證:

申報驗證方式:

AwesomeValidation mAwesomeValidation = new AwesomeValidation(UNDERLABEL); 
mAwesomeValidation.setContext(this); 

添加驗證;

mAwesomeValidation.addValidation(activity, R.id.edt_name, 「[a-zA-Z\\s]+」, R.string.err_name); 
mAwesomeValidation.addValidation(activity, R.id.edt_tel, RegexTemplate.TELEPHONE, R.string.err_tel); 

設置何時觸發驗證。

findViewById(R.id.btn_done).setOnClickListener(new View.OnClickListener() 
    @Override 
    public void onClick(View v) 
    mAwesomeValidation.validate(); 
); 

那一切,這裏是full source code

validation for android - dasnic

+3

那麼你爲什麼認爲它回答了他的問題?他要求提供具體的驗證錯誤消息的展現方法。 – 2015-03-28 11:33:15

+0

你能告訴我如何確認密碼字段時如何使用這個Awesome Validation Library。 – 2015-06-27 06:57:19

+0

@SriyankSiddhartha驗證確認字段,你只需要做'mAwesomeValidation.addValidation(活動,R.id.edt_password_confirmation,R.id.edt_password,R.string.err_password_confirmation);'請檢查github回購頁面的詳細信息。 – 2016-12-06 07:54:23