gpt4 book ai didi

android - 您如何使字段成为 Android Saripaar 中不需要的电子邮件字段?

转载 作者:行者123 更新时间:2023-11-29 14:47:02 25 4
gpt4 key购买 nike

我的 Android 应用程序中有一个简单的表单,我正在使用 Android Saripaar 进行验证,其中一个字段是电子邮件地址,并且根据 the first example in the docs它应该看起来像这样:

@NotEmpty
@Email
private EditText emailEditText;

但是我希望它是一个可选字段,所以我省略了 @NotEmpty 注释:

@Email
private EditText emailEditText;

但是当我将它留空时,它可以理解地标记为无效的电子邮件地址。是否可以在不编写自定义规则的情况下将此字段设置为可选字段?

最佳答案

由于我们需要一个项目的可选电子邮件字段,我继续并根据 this answer 制定了规则/注释组合.引用 Saripaar 文档以获取 RulesAnnotations .

OptionalEmailRule.java

public class OptionalEmailRule extends AnnotationRule<OptionalEmail, String> {

protected OptionalEmailRule(final OptionalEmail email) {
super(email);
}

@Override
public boolean isValid(final String email) {
if(TextUtils.isEmpty(email)){
//email is empty and therefore valid
return true;
}
else{
//email is not empty, proceed as usual
boolean allowLocal = mRuleAnnotation.allowLocal();
return EmailValidator.getInstance(allowLocal).isValid(email);
}

}
}

OptionalEmail.Java

@ValidateUsing(OptionalEmailRule.class)
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface OptionalEmail {
boolean allowLocal() default false;

int sequence() default -1;
int messageResId() default -1;
String message() default "Invalid email";

}

内部验证 Activity

  1. 注册注解

    Validator.registerAnnotation(OptionalEmail.class);
  2. 注释字段

    @OptionalEmail
    public EditText editEmail;

关于android - 您如何使字段成为 Android Saripaar 中不需要的电子邮件字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32236179/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com