2009-07-13 2 views
121

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

+4

вопрос не конкретно указывается желание изменить разрешенный тип ввода. Он просто спрашивает, как изменить режим клавиатуры, что я хотел бы сделать, не меняя тип ввода. Все ответы объясняют, как изменить тип ввода. – AlanKley

+0

Проверьте мой ответ на этот вопрос http: // stackoverflow.com/questions/39593324/can not-solve-symbol-showsoftinput/39593871 # 39593871 –

ответ

224

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

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

Это удивительно просто. cheers –

+6

Также обратите внимание, что вам нужно настроить таргетинг на Android 1.5 (его нет в 1.1) – Wilka

+4

Проблема в том, что вы не можете переключиться обратно. Использование «number | text» также не работает. Кажется, если вы хотите показать цифровую клавиатуру, вы не можете позволить ей вернуться к тексту. – 2011-08-18 20:18:21

107

Для этого в файле Java:

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

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

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

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

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

editText.setInputType(InputType.TYPE_CLASS_PHONE); 

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

Есть ли способ сделать это программно? Умирая, чтобы получить ограниченную клавиатуру для моего EditText, но она настроена таким образом, что она должна быть сгенерирована в действии. – santafebound

3

Если вы используете EditText в диалоге или создавать динамически и Вы не можете установить его из XML, этот пример поможет вам в создании этого типа ключа платы время вы используете динамический Edit Text и т.д.

myEditTxt.setInputType(InputType.TYPE_CLASS_NUMBER); 

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

10

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

  1. Продолжительность установить

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

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

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

+0

именно то, что мне нужно! – jjLin

2

Больше типов входных и детали нашли here на сайте Google

4

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

android:inputType="numberDecimal" 
0

Определить это в коде XML

android:inputType="number" 
0

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

editText.setRawInputType (Configuration.KEYBOARD_QWERTY);

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

Не могли бы вы объяснить код? – MBH

Смежные вопросы