Как мне показать цифровую клавиатуру на EditText в Android? - PullRequest
138 голосов
/ 13 июля 2009

Я просто хочу переключиться в режим цифровой клавиатуры, как только определенный EditText будет в фокусе.

Ответы [ 13 ]

251 голосов
/ 13 июля 2009

Вы можете настроить inputType для вашего EditText:

<EditText android:inputType="number" ... />
112 голосов
/ 06 октября 2010

Чтобы сделать это в файле Java:

EditText input = new EditText(this);
input.setInputType(InputType.TYPE_CLASS_NUMBER);
46 голосов
/ 28 февраля 2012

Я нашел эту реализацию полезной, показывает лучшую клавиатуру и ограничивает ввод символов.

<EditText
    android:inputType="phone"
    android:digits="1234567890"
    ...
/>

Кроме того, вы можете использовать android:maxLength для ограничения максимального количества чисел.

Для этого программно:

editText.setInputType(InputType.TYPE_CLASS_PHONE);

KeyListener keyListener = DigitsKeyListener.getInstance("1234567890");
editText.setKeyListener(keyListener);
17 голосов
/ 10 января 2013
<EditText
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    ...
    android:inputType="number|phone"/> 

покажет номерную клавиатуру как номеронабиратель.

10 голосов
/ 12 декабря 2012

Вы можете сделать это 2 способами

  1. Набор времени выполнения

    EditText input = new EditText(this);
    input.setInputType(InputType.TYPE_CLASS_NUMBER);
    
  2. Использование XML

    <EditText
        ...
        android:inputType="number" />
    
5 голосов
/ 10 октября 2014

Если вам нужно дробное число, то это ответ для вас:

android:inputType="numberDecimal"
4 голосов
/ 04 декабря 2012

Если вы используете ваш EditText в диалоге или создаете динамически, и вы не можете установить его из xml, тогда этот пример поможет вам настроить этот тип клавиатуры при использовании динамического редактирования текста и т. Д.

myEditTxt.setInputType(InputType.TYPE_CLASS_NUMBER);

где myEditTxt - динамический объект EDIT TEXT (имя)

2 голосов
/ 01 ноября 2018

Ниже кода разрешены только цифры «0123456789», даже если вы случайно наберете «0123456789», текст редактирования не будет принят.

    EditText number1 = (EditText) layout.findViewById(R.id.edittext); 
    number1.setInputType(InputType.TYPE_CLASS_NUMBER|InputType.TYPE_CLASS_PHONE);
    number1.setKeyListener(DigitsKeyListener.getInstance("0123456789”));
2 голосов
/ 20 марта 2014

найдено больше типов ввода и подробностей здесь на сайте google

1 голос
/ 21 сентября 2017

Используйте приведенный ниже код в Java-файле

editText.setRawInputType (Configuration.KEYBOARD_QWERTY);

...