向Android Saripaar添加自定义注释

时间:2014-01-28 12:33:33

标签: android validation user-interface saripaar

我刚开始使用android saripaar库作为客户端的应用程序。我想为字段添加自定义验证。但是,似乎没有办法创建自定义注释。我必须在验证器中手动输入规则。

如何为其创建自定义注释?

1 个答案:

答案 0 :(得分:21)

(披露:我是作者)

Saripaar v2允许您定义自定义注释。

这是你如何做到的。

第1步按如下方式定义自定义注释。确保您拥有RUNTIME保留政策,并且您的注释必须定位到FIELD元素类型。 messagemessageResId属性是必需的,因此请注意名称和类型。

@ValidateUsing(HaggleRule.class)
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface Haggle {
    public int messageResId()   default -1;                     // Mandatory attribute
    public String message()     default "Oops... too pricey";   // Mandatory attribute
    public int sequence()       default -1;                     // Mandatory attribute

    public double maximumAskingPrice();                         // Your attributes
}

第2步通过扩展AnnotationRule类来定义规则。

public class HaggleRule extends AnnotationRule<Haggle, Double> {

    protected HaggleRule(Haggle haggle) {
        super(haggle);
    }

    @Override
    public boolean isValid(Double data) {
        boolean isValid = false;
        double maximumAskingPrice = mRuleAnnotation.maximumAskingPrice();

        // Do some clever validation....

        return isValid;
    }
}

第3步注册您的规则。

Validator.registerAnnotation(Haggle.class); // Your annotation class instance

这很简单。如果您愿意,请查看源代码。 Saripaar v2现在可以在Maven Central上使用。