使用inputfilter

时间:2015-05-07 19:22:37

标签: android regex robolectric

我正在运行一些测试来检查数据是否在字段中填充。 在名称字段中,我有一个带有此正则表达式的输入过滤器“ [A-ZÀ-ÚA-Za-zà-úûÛ-Üa-zä\\ s'] * ”,但是当字段在测试环境中填充,正则表达式与名称不匹配(“Bruno Pinto”)。

我从自定义视图中的XML中获取正则表达式。 要做到这一点,我使用:

 TypedArray a = context.getTheme().obtainStyledAttributes(
            attrs,
            R.styleable.FloatLabelLayout,
            0, 0);

如果我在测试环境中调试此行:

        final String regex = a.getString(R.styleable.FloatLabelLayout_regex);

regex =“[A-ZÀ-ÚA-Za-zà-úûÛ-Üa-zä\\ s']”

如果我在正常运行环境中调试同一行:

regex =“[A-ZÀ-ÚA-Za-zà-úûÛ-Üa-zä\ s']”

有人知道我要做些什么来使它有效?

InputFilter

 InputFilter[] inputFilter = new InputFilter[]{
            new InputFilter.LengthFilter(maxLength),
            new InputFilter() {
                public CharSequence filter(CharSequence src, int start, int end, Spanned dst, int dstart, int dend) {
                    if (src.equals("") || regex == null) { // for backspace
                        return src;
                    }
                    if (src.toString().matches(regex)) {
                        return src;
                    }
                    return "";
                }
            }
    };

测试

  @Test
public void testFillName() {
    fragment.setData(getUser());
    assertEquals("Name right", getUser().fullName, ((FloatLabelLayout) fragment.getView().findViewById(R.id.personal_name)).getText());
}

0 个答案:

没有答案