Временами возникает необходимость чтобы пользователь ввел в программе число. Это может быть почтовый индекс или какая-то сумма. Число может быть целым или вещественным или отрицательным. На первый взгляд в Android - это простейшая задача. В элементе интерфейса
EditText
для всех этих вариантов предусмотрены соответствующие свойства. Вот так вот выглядит описание простейшего поля для ввода натурального числа.
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:inputType="number"/>
Однако, это описание не дает понять насколько удобно пользователю будет вводить число. Какая клавиатура будет открыта при получение фокуса этим полем зависит от установленной на устройстве программы для отображения клавиатуры. На Samsung Galaxy S открывается аккуратная клавиатура с большими числами, а вот на устройствах от остальных производителей открывается стандартная клавиатура с четырьмя рядами клавиш из которых цифры занимают только верхний ряд. То есть три четверти пространства клавиатуры пропадают зря.
| | |
Цифровая клавиатура на Samsung Galaxy | | Обычная цифровая клавиатура |
Можно развести руками, а можно немного исправить ситуацию. У всех устройств есть нужная клавиатура, которая состоит из больших цифр - эта клавиатура для набора телефонного номера. У нее, однако, есть недостаток - в ней можно вводить дополнительные символы, пробелы, использовать несколько минусов-тире. Но
EditText
предоставляет второй механизм ограничить какие символы можно вводить при помощи поля
android:digits
. В этом поле нужно задать список символов и все остальные символы не попадающие в этот список будут игнорироваться. Если задать в нем только цифры, то задача для натуральных чисел будет решена.
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:inputType="phone"
android:digits="1234567890"/>
В результате на Motorola Droid мы получим такую клавиатуру:
|
Итоговая цифровая клавиатура |
Константин, здравствуйте.
ОтветитьУдалитьПо роду службы, да и просто из интереса, очень хотелось бы заиметь себе такую же цифровую клавиатуру. Однако, я совершенный чайник, и даже не смог отыскать, что же такое EditText.
Подобную клавиатуру ищу уже не первый месяц, безуспешно. Могли бы Вы как-то помочь? Может быть расскажите подробнее о том, как произвести такие манипуляции с родной клавиатурой (я пользуюсь htc hd2 с прошивкой от desire). Либо - но это уж я черезчур нагло - может быть подкинете мне уже готовый apk файл с такой клавиатурой?
Очень надеюсь на помощь. Нашел Ваш блог недавно, весьма нравится круг освещаемых вопросов:-)
Спасибо!
EditText - это один из элементов интерфейса, который используется при разработке Андроид приложений. Ни скриншоте не какая-то специальная клавиатура, а обычная клавиатура, которая работает в специальном режиме.
УдалитьЯ не встречался с клавиатурами, которые всегда работают в таком режиме, но, скорее всего, они существуют. Рекомендую вам русскоязычное сообщество на форуме сайта 4pda.ru, скорее всего там вам кто-то сможет подсказать нужную клавиатуру.
Спасибо! 4pda просматриваю регулярно, но так ничего и не нашел. Что же, буду дальше искать)
Удалить