我想让EditText进行一些简单的验证。我希望它以逗号前的8个符号和逗号后的2个符号获得十进制数。
我在这里找到了一些例子,但我无法弄清楚他们为什么不为我工作。我试图设置InputFilter,但我无法创建有效的正则表达式。
public class DecimalDigitsInputFilter implements InputFilter {
Pattern mPattern;
public DecimalDigitsInputFilter(final int digitsBeforeZero,
final int digitsAfterZero) {
mPattern = Pattern.compile("place for my regex");
}
@Override
public CharSequence filter(final CharSequence source, final int start,
final int end, final Spanned dest, final int dstart,
final int dend) {
Matcher matcher = mPattern.matcher(dest);
if (!matcher.matches()) {
return "";
}
return null;
}
}
答案 0 :(得分:1)
TextWatcher
可以替代你。
参见:
Android TextWatcher.afterTextChanged vs TextWatcher.onTextChanged
http://www.androidadb.com/class/android/text/TextWatcher.java.html
这样您就不必使用正则表达式,并且可以在文本显示之前检查文本。