我正在运行一些测试来检查数据是否在字段中填充。 在名称字段中,我有一个带有此正则表达式的输入过滤器“ [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());
}