Я использую фильтр для моего текста редактирования. Мне нужно ввести значения с двумя цифрами после точки. Но если вы введете номер, затем точку и удалите номер до точки, точка не очищается, мне нужно, чтобы точка была удалена. Вот мой метод фильтрации:
@Override
public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
String destStr = dest.toString();
String sourceStr = source.toString();
String stringToMatch = destStr.substring(0,dstart) + source.toString() + destStr.substring(dend);
stringToMatch = stringToMatch.replace(String.valueOf((char) 160), "");
Matcher matcher = mPattern.matcher(stringToMatch);
if (!matcher.matches()) {
return "";
}
return sourceStr.replace(',', '.');
}
И это мое регулярное выражение
"([1-9] [0-9] *) (([. ,,] [0-9] {1,2}) | ([. ,,])?) "
Когда фильтр возвращает" "в моем тексте редактирования, значение не установлено на" ". Пожалуйста, помогите мне.