Android. Inputfilter не работает должным образом - PullRequest
1 голос
/ 16 апреля 2020

Я использую фильтр для моего текста редактирования. Мне нужно ввести значения с двумя цифрами после точки. Но если вы введете номер, затем точку и удалите номер до точки, точка не очищается, мне нужно, чтобы точка была удалена. Вот мой метод фильтрации:

 @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}) | ([. ,,])?) "

Когда фильтр возвращает" "в моем тексте редактирования, значение не установлено на" ". Пожалуйста, помогите мне.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...