Использовано TextWatcher
как предложено @Matt Ball.
@Override
public void afterTextChanged(Editable s) {
String text = s.toString();
int length = text.length();
if(length > 0 && !Pattern.matches(PATTERN, text)) {
s.delete(length - 1, length);
}
}
Редактировать
Хотя TextWatcher
работает, было бы чище использовать InputFilter
. Проверьте это пример .