Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/221.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java MaterialEdit文本RegexpValidator_Java_Android_Regex - Fatal编程技术网

Java MaterialEdit文本RegexpValidator

Java MaterialEdit文本RegexpValidator,java,android,regex,Java,Android,Regex,如果输入是有效的而不是charSequence.length,我如何让这段代码检查输入是否有效并设置z2=true 我正在使用这个库: 您完全覆盖了regex验证,对给定的regex不做任何操作 就个人而言,我建议您扩展它并使用接口添加回调 /* * Add these inside the class */ private static interface ValidCallback { public void isValid(Boolean valid); } private

如果输入是有效的而不是charSequence.length,我如何让这段代码检查输入是否有效并设置z2=true

我正在使用这个库:


您完全覆盖了regex验证,对给定的regex不做任何操作

就个人而言,我建议您扩展它并使用接口添加回调

/*
* Add these inside the class
*/

private static interface ValidCallback {
    public void isValid(Boolean valid);
}

private static class NumberLetterValidator extends RegexpValidator { 

    private ValidCallback c;

    public NumberLetterValidator(ValidCallback c) {
        super("You can only use Laters and Numbers", "^[a-zA-Z0-9]*$");
        this.c = c;
    }

    @Override
    public boolean isValid(CharSequence charSequence, boolean isEmpty) {
        boolean valid = super.isValid(charSequence, isEmpty);
        if (c != null) c.isValid(valid);
        return valid;
    }
}
然后,您可以在这里传递自定义逻辑

ValidCallback cb = new ValidCallback() {
    @Override
    public void isValid(Boolean b) {
        displaynameVerified = b;   
        validateInput();
    }
};
this.inputDisplayName.addValidator(new NumberLetterValidator(cb));

RegexpValidator
已具有
isValid
的有效实现。。。为什么要重写它,而从不使用它的regex功能?因为我想设置displaynamevirfied=true;如果没有错误,您是否尝试将该值指定给模式是否匹配?如何在我的脚本中做到这一点?那么,
registerActivity.displaynameVerified=this.pattern.matches(…)
将是一个很好的开始
ValidCallback cb = new ValidCallback() {
    @Override
    public void isValid(Boolean b) {
        displaynameVerified = b;   
        validateInput();
    }
};
this.inputDisplayName.addValidator(new NumberLetterValidator(cb));