Як відобразити цифрову клавіатуру на 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
Проблема полягає в тому, що ви не можете переключитися назад. Використання "номера | тексту" також не працює. Здається, якщо ви хочете показати цифрову клавіатуру, ви не можете дозволити їй повернутися до тексту.

Я погоджуюся з Брайаном. Якщо перше поле є альфа, а наступне - числовим, я не можу перейти до наступного поля за допомогою кнопки "Далі"!
Ахмед

Ви можете повернутися чи ні, залежить від телефону, який я думаю. Шахта дозволяє це.
Блотін Мартіна Клеменса

Я хочу змінити номер типу клавіатури, і я хочу вставити текст у редагуванні. Як зробити?
Ібрагім ЯНИК

115

Щоб зробити це у файлі Java:

EditText input = new EditText(this);
input.setInputType(InputType.TYPE_CLASS_NUMBER);

51

Я вважаю цю реалізацію корисною, показує кращу клавіатуру та обмежує вхідні символи.

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

Крім того, ви можете використовувати android:maxLength для обмеження максимальної кількості цифр.

Щоб зробити це програмно:

editText.setInputType(InputType.TYPE_CLASS_PHONE);

KeyListener keyListener = DigitsKeyListener.getInstance("1234567890");
editText.setKeyListener(keyListener);

Чи можливо це зробити програмно? Вмираю, щоб отримати клавіатуру з обмеженою кількістю для мого EditText, але вона налаштована таким чином, що вона повинна бути створена в процесі діяльності.
Мартін Ерліч

18
<EditText
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    ...
    android:inputType="number|phone"/> 

покаже велику цифрову клавіатуру як дозвону.


11

Зробити це можна двома способами

  1. Набір часу виконання

    EditText input = new EditText(this);
    input.setInputType(InputType.TYPE_CLASS_NUMBER);
  2. Використання XML

    <EditText
        ...
        android:inputType="number" />

5

Якщо вам потрібно дробове число, то це відповідь для вас:

android:inputType="numberDecimal"

4

Якщо ви використовуєте EditText у діалоговому вікні або створюєте динамічно, і ви не можете встановити його з xml, тоді цей приклад допоможе вам у налаштуванні цього типу клавіатури під час використання динамічного редагування тексту тощо.

myEditTxt.setInputType(InputType.TYPE_CLASS_NUMBER);

де myEditTxt - це динамічний об’єкт EDIT TEXT (ім'я)


2
editText.setRawInputType(InputType.TYPE_CLASS_NUMBER);

Якщо ви вручну форматуєте текст (наприклад, для валюти) і хочете керувати лише клавіатурою, це вибір. Не буде фільтрувати ваші символи. Дякую!
lauksas

Це спрацювало як шарм для мене. Я хочу відобразити значення текстового заповнювача, коли поле ще не відредаговане, але все ж обмежувати введення цифрами та відображати обмежену клавіатуру.
Алекс Сузукі


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);



0
EditText number1 = (EditText) layout.findViewById(R.id.edittext); 
number1.setInputType(InputType.TYPE_CLASS_NUMBER);

Якщо у вас створено EditText номер1 в коді макета xml, то, якщо ви хочете встановити цифрову клавіатуру на номер1 EditText, ви можете це зробити за допомогою Java Code.
Шив Буя
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.