Кнопки виртуальной клавиатуры Android некорректно отключены (Kindle Fire)

У меня есть пользователь, сообщающий об ошибке в моем приложении. У меня есть несколько полей EditText в моем макете. Я только хочу, чтобы пользователь мог вводить десятичные числа со знаком. Однако у меня нет макета, объявляющего их как number|numberSigned|numberDecimal, потому что у меня есть пользовательский TextWatcher, прикрепленный к этим полям, который обрабатывает ввод и проверяет его правильность. Я делаю это, потому что хочу, чтобы клавиша минус действовала как переключатель.

Допустим, в поле есть «300». Если пользователь нажимает минус, мой пользовательский TextWatcher перехватывает его и превращает в «-300» вместо «300-». Если они снова коснутся минуса, он удалит существующий минус и изменит его на «300».

Это прекрасно работает практически для всех, но не работает на Kindle Fire. Десятичная точка и клавиша «минус» на виртуальной клавиатуре отключены, поэтому у них даже нет возможности нажать на эти клавиши и позволить пользовательскому наблюдателю за текстом выполнить свою работу.

Если я объявлю поля number|numberSigned|numberDecimal, то поля не позволят пользователю нажимать клавишу минус, если только курсор не находится в крайнем левом положении (т.е. до 3 в 300).

Как я могу сказать Kindle Fire, чтобы убедиться, что клавиши десятичной точки и минус должны быть активны, но в то же время не ограничивать разрешенный ввод пользователя до того, как он достигнет моего пользовательского TextWatcher ... вы знаете, как КАЖДЫЙ другой Android устройство работало для меня? :)


person Kenny Wyland    schedule 17.04.2012    source источник
comment
Был способ принудительно использовать цифровую клавиатуру, не ограничивая EditText числом. Это может сработать для вас, поскольку позволит Fire вводить 300-. только не помню как :о)   -  person zapl    schedule 18.04.2012
comment
theEditText.setRawInputType(Configuration.KEYBOARD_12KEY) Может это поможет. Отключено - звучит очень странно.   -  person zapl    schedule 18.04.2012
comment
@zapl Оказывается, это помогло. Если вы опубликуете это как ответ, я приму его, чтобы вы могли получить представителя.   -  person Kenny Wyland    schedule 03.05.2012
comment
Теперь у вас должен быть лучший пример того, как это работает, чтобы вы могли опубликовать то, что вы сделали, в качестве ответа - меньше работы для ленивых :)   -  person zapl    schedule 04.05.2012


Ответы (1)


Ответ от @zapl:

theEditText.setRawInputType(Configuration.KEYBOARD_12KEY)

работал! Найдите какой-нибудь другой его хороший ответ и проголосуйте за него, чтобы он мог получить должное признание за этот ответ. ;)

person Kenny Wyland    schedule 03.05.2012