0

我想让 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;
    }
}
4

1 回答 1

1

ATextWatcher可能是您的替代方案。看:

Android TextWatcher.afterTextChanged 与 TextWatcher.onTextChanged

http://www.androidadb.com/class/android/text/TextWatcher.java.html

这样您就不必使用正则表达式,并且可以在显示更好之前检查文本。

于 2012-06-08T15:20:02.523 回答