Как мне показать цифровую клавиатуру на EditText в Android?

146

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

Чивай Чан
источник
4
В этом вопросе конкретно не говорится о желании изменить разрешенный тип ввода. Он просто спрашивает, как изменить режим клавиатуры, что я хотел бы сделать, не меняя тип ввода. Все ответы объясняют, как изменить тип ввода.
AlanKley
Проверьте мой ответ на этот вопрос stackoverflow.com/questions/39593324/…
Справка Android

Ответы:

261

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

<EditText android:inputType="number" ... />
Йозеф Пфлегер
источник
6
Также обратите внимание, что вам нужно настроить Android 1.5, чтобы использовать это (он недоступен в 1.1)
Wilka
4
Проблема в том, что вы не можете переключиться обратно. Использование «число | текст» также не работает. Кажется, если вы хотите показать цифровую клавиатуру, вы не можете позволить ей переключиться обратно на текст.
Я согласен с Брайаном ... если первое поле является альфа, а следующее поле числовым, я не могу перейти к следующему полю с помощью кнопки «Далее»!
Ахмед
Я думаю, что вы можете вернуться или нет, зависит от телефона. Мой это позволяет.
Мартин Клеменс Блох
Я хочу изменить номер типа клавиатуры и вставить текст в edittext. Как сделать?
Ибрагим Яник
115

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

EditText input = new EditText(this);
input.setInputType(InputType.TYPE_CLASS_NUMBER);
Dominic
источник
51

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

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

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

Чтобы сделать это программно:

editText.setInputType(InputType.TYPE_CLASS_PHONE);

KeyListener keyListener = DigitsKeyListener.getInstance("1234567890");
editText.setKeyListener(keyListener);
Matthijs
источник
Есть ли способ сделать это программно? Умирает, чтобы получить ограниченную клавиатуру для моего EditText, но она настроена таким образом, что она должна быть сгенерирована в действии.
Мартин Эрлик
18
<EditText
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    ...
    android:inputType="number|phone"/> 

покажет большую цифровую клавиатуру в качестве звонилки.

Нгуен Минь Бинь
источник
11

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

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

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

    <EditText
        ...
        android:inputType="number" />
Нирав Ранпара
источник
5

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

android:inputType="numberDecimal"
macio.Jun
источник
4

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

myEditTxt.setInputType(InputType.TYPE_CLASS_NUMBER);

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

Пир Фахим Шах
источник
2
editText.setRawInputType(InputType.TYPE_CLASS_NUMBER);
Алия
источник
Если вы вручную форматируете текст (например, для валюты) и хотите управлять только клавиатурой, это выбор. Не будет фильтровать ваши символы. Спасибо!
Лауксас
Это сработало как обаяние для меня. Я хочу отобразить текстовое значение заполнителя, когда поле еще не было отредактировано, но все же ограничить ввод цифрами и отобразить ограниченную клавиатуру.
Алекс Судзуки
2

Больше типов ввода и деталей можно найти здесь на сайте Google

Сай Горантла
источник
2

Приведенный ниже код будет разрешать только цифры «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”));
Ахила мадари
источник
Вы должны добавить комментарий, объясняющий ваш код и почему это решение
cyroxis
1

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

editText.setRawInputType (Configuration.KEYBOARD_QWERTY);

Darshuu
источник
0

Определите это в своем XML-коде

android:inputType="number"
fulgen
источник
0
EditText number1 = (EditText) layout.findViewById(R.id.edittext); 
number1.setInputType(InputType.TYPE_CLASS_NUMBER);
Шив Буя
источник
Если у вас есть EditText номер1, созданный в коде макета XML, тогда, если вы хотите установить Number Keyboard на номер1 EditText, вы можете сделать это с помощью кода Java.
Шив Буя