如何在android中的EditText上显示数字键盘?

Chi*_*han 142 keyboard android android-edittext

我只是想在某个EditText具有焦点时立即切换到数字键盘模式.

Jos*_*ger 254

您可以inputType为您配置EditText:

<EditText android:inputType="number" ... />
Run Code Online (Sandbox Code Playgroud)

  • 另请注意,您需要将Android 1.5作为目标(它在1.1中不可用) (6认同)
  • 问题是你无法切换回来.使用"数字|文本"也不起作用.看来如果要显示数字键盘,就不能让它切换回文本. (4认同)

小智 114

要在Java文件中执行此操作:

EditText input = new EditText(this);
input.setInputType(InputType.TYPE_CLASS_NUMBER);
Run Code Online (Sandbox Code Playgroud)


Mat*_*ijs 47

我发现这个实现很有用,它显示了更好的键盘并限制了输入字符.

<EditText
    android:inputType="phone"
    android:digits="1234567890"
    ...
/>
Run Code Online (Sandbox Code Playgroud)

此外,您可以使用android:maxLength限制最大数量.

要以编程方式执行此操作:

editText.setInputType(InputType.TYPE_CLASS_PHONE);

KeyListener keyListener = DigitsKeyListener.getInstance("1234567890");
editText.setKeyListener(keyListener);
Run Code Online (Sandbox Code Playgroud)


Ngu*_*inh 17

<EditText
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    ...
    android:inputType="number|phone"/> 
Run Code Online (Sandbox Code Playgroud)

将显示大号垫作为拨号器.


Nir*_*ara 10

你可以做2种方式

  1. 运行时设置

    EditText input = new EditText(this);
    input.setInputType(InputType.TYPE_CLASS_NUMBER);
    
    Run Code Online (Sandbox Code Playgroud)
  2. 使用XML

    <EditText
        ...
        android:inputType="number" />
    
    Run Code Online (Sandbox Code Playgroud)


Pir*_*hah 5

如果您在对话框中使用 EditText 或动态创建,并且无法从 xml 设置它,那么此示例将帮助您在使用动态编辑文本等时设置该类型的键盘

myEditTxt.setInputType(InputType.TYPE_CLASS_NUMBER);
Run Code Online (Sandbox Code Playgroud)

其中 myEditTxt 是动态编辑文本对象(名称)


mac*_*Jun 5

如果您需要小数,那么这就是您的答案:

android:inputType="numberDecimal"
Run Code Online (Sandbox Code Playgroud)