У меня есть пользователь, сообщающий об ошибке в моем приложении. У меня есть несколько полей EditText в моем макете. Я только хочу, чтобы пользователь мог вводить десятичные числа со знаком. Однако у меня нет макета, объявляющего их как number|numberSigned|numberDecimal
, потому что у меня есть пользовательский TextWatcher, прикрепленный к этим полям, который обрабатывает ввод и проверяет его правильность. Я делаю это, потому что хочу, чтобы клавиша минус действовала как переключатель.
Допустим, в поле есть «300». Если пользователь нажимает минус, мой пользовательский TextWatcher перехватывает его и превращает в «-300» вместо «300-». Если они снова коснутся минуса, он удалит существующий минус и изменит его на «300».
Это прекрасно работает практически для всех, но не работает на Kindle Fire. Десятичная точка и клавиша «минус» на виртуальной клавиатуре отключены, поэтому у них даже нет возможности нажать на эти клавиши и позволить пользовательскому наблюдателю за текстом выполнить свою работу.
Если я объявлю поля number|numberSigned|numberDecimal
, то поля не позволят пользователю нажимать клавишу минус, если только курсор не находится в крайнем левом положении (т.е. до 3 в 300).
Как я могу сказать Kindle Fire, чтобы убедиться, что клавиши десятичной точки и минус должны быть активны, но в то же время не ограничивать разрешенный ввод пользователя до того, как он достигнет моего пользовательского TextWatcher ... вы знаете, как КАЖДЫЙ другой Android устройство работало для меня? :)
theEditText.setRawInputType(Configuration.KEYBOARD_12KEY)
Может это поможет. Отключено-
звучит очень странно. - person zapl   schedule 18.04.2012