Как открыть клавиатуру Android "123"

У меня есть EditText, который должен обрабатывать как числовой, так и/или алфавитный вход в зависимости от состояния. В некоторых случаях пользователь может ввести любой тип ввода. Я только смог всплывать на клавиатуре "Телефон", используя setInputType (InputType.TYPE_CLASS_NUMBER);, которая работает, но не позволяет пользователю вернуться к QWERTY-клавиатуре. Поскольку большая часть ввода действительно численная, я бы хотел представить пользователю клавиатуру? 123 большую часть времени. Им нужно будет только вернуться к клавиатуре QWERTY несколько раз.

Как я могу всплывать экранную QWERTY-клавиатуру для ввода в алфавитном порядке, а затем всплывать клавиатуру "? 123", если она численная? Я просто хочу сохранить шаг для пользователя, поэтому им не нужно каждый раз нажимать кнопку "123" на клавиатуре QWERTY.

Обновить. Это клавиатура, которую я бы хотел видеть. Причина в том, что я хотел бы, чтобы пользователь легко переключался между алфавитным вводом и цифровым вводом. Невозможно переключиться на клавиатуру QWERTY с "цифровой клавиатуры". В моем приложении числовой ввод необходим для 90% ввода, поэтому я хотел бы его всплывать в качестве удобства. Другими словами, вместо того, чтобы переключаться на числовую клавиатуру в 90% случаев, им нужно только переключиться на QWERTY 10% времени enter image description here

Вызов input.setRawInputType(Configuration.KEYBOARD_QWERTY); работает по-разному на Honeycomb и более поздних версиях Gingerbread (вызывает цифровую клавиатуру). На Gingerbread 2.2.3 он работает так, как я хочу. Сотовые и 2.3.7 клавиатурные screengrabs приведены ниже для справки. Я не знаю, почему они так отличаются.

Honeycomb 3.2 keyboard for Configuration.KEYBOARD_QWERTYGingerbread 2.3.7 keyboard for Configuration.KEYBOARD_QWERTY

Ответ 1

Я считаю, что этот пост отвечает на ваш вопрос.

Короче добавьте это в свой код:

editText.setRawInputType(Configuration.KEYBOARD_QWERTY);