Привет всем У меня проблема между двумя устройствами.
На практике, используя InputType
и KeyListener
, я манипулирую EditText
, чтобы заставить его получать запятые и цифры с клавиатуры цифр c (для дополнительной справки проверьте мои предыдущие вопрос ).
Используя следующий код, я могу сделать что-то подобное:
editText.setInputType(InputType.TYPE_CLASS_NUMBER + InputType.TYPE_NUMBER_FLAG_DECIMAL);
editText.setKeyListener(DigitsKeyListener.getInstance("0123456789,"));
К сожалению, это не работает на некоторых устройствах, таких как Asus ZenPad 8.0
или на некоторых Samsung.
Только запятая цифра c отображается без запятой, и поэтому пользователь не может щелкнуть и использовать ее, что важно обратите внимание, что комментирование строки кода ниже показывает мне правильно блокнот с доступной запятой. Но при этом они больше не могут использовать несколько запятых в одном поиске.
editText.setKeyListener(DigitsKeyListener.getInstance("0123456789,"));
Без KeyListener
С KeyListener
Я также прочитал документацию android об этом и там написано ( source ):
Интерфейс для преобразования событий текстовых клавиш в операции редактирования в редактируемом классе. Обратите внимание, что в большинстве случаев этот интерфейс был заменен общими программными методами ввода, как определено InputMethod; его следует использовать только в тех случаях, когда приложение имеет собственную экранную клавиатуру, а также хочет обрабатывать события жесткой клавиатуры, чтобы соответствовать ей.
Для запуска методов в этом режиме нажатия клавиш не требуются. слушатель, и на самом деле не рекомендуется делать это. Клавиатура android по умолчанию не будет вызывать их для какой-либо клавиши для любого приложения, нацеленного на Jelly Bean или более позднюю версию, и будет доставлять ее только для некоторых нажатий клавиш для приложений, нацеленных на Ice Cream Sandwich или более раннюю версию.
Так в принципе для старых версий android это не работает? Как я могу повторить вышеупомянутое поведение? (В основном, как я могу использовать клавиатуру цифри c с неограниченным количеством запятых)
Для более подробной информации просто прокомментируйте, я с удовольствием отвечу и добавлю больше информации!
Спасибо заранее, Джакомо.