0

EditText に簡単な検証を加えたいと思います。コンマの前に8記号、コンマの後に2記号の形式で10進数を取得したいと思います。

ここでいくつかの例を見つけましたが、なぜそれらがうまくいかないのかわかりません。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 に答える