2012-08-02 117 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