У меня есть программа, которую я обновляю с Android 7.1.1 до версии 8.1.Большинство вещей прошло невероятно гладко, но я натолкнулся на одну вещь.
У меня есть запись почтового индекса с использованием EditText.Эта запись изначально начинается с InputType ClassText, и, когда пользователь вводит свои символы, я переключаюсь с ClassText на ClassNumber, чтобы получить результирующий формат, такой как: "M1N2J8"
В 7.1.1 это работает, Нет проблем.Однако поведение, похоже, изменилось в 8.1.Когда я ввожу «M», а затем «1», у меня нет проблем, но после того, как я изменил его обратно на ClassText, чтобы ввести «N», он стирает «1» и оставляет меня с «MN»
Я был бы очень признателен за любые идеи, которые кто-либо может предложить, как я могу обойти это.В худшем случае я просто включу алфавитно-цифровую клавиатуру и сам обработаю ограничивающие символы, но мой клиент очень предпочитает, чтобы клавиатура переключалась между вводом текста и цифр, поэтому сейчас это моя цель.
Спасибо!
if (txt.SelectionStart == 0 || txt.SelectionStart == 2 || txt.SelectionStart == 4)
{
txt.InputType = InputTypes.ClassText | InputTypes.TextFlagCapCharacters;
txt.SetFilters(new IInputFilter[] { new InputFilterLengthFilter(maxLength), new AlphaInputFilter() });
}
else if (txt.SelectionStart == 1 || txt.SelectionStart == 3 || txt.SelectionStart == 5)
{
txt.InputType = InputTypes.ClassNumber;
txt.SetFilters(new IInputFilter[] { new InputFilterLengthFilter(maxLength), new NumberInputFilter() });
}