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

时间:2009-07-13 13:55:52

标签: android keyboard android-edittext

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

13 个答案:

答案 0 :(得分:250)

您可以为inputType配置EditText

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

答案 1 :(得分:112)

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

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

答案 2 :(得分:46)

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

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

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

以编程方式执行此操作:

editText.setInputType(InputType.TYPE_CLASS_PHONE);

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

答案 3 :(得分:17)

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

将显示大号数字键盘作为拨号器。

答案 4 :(得分:10)

你可以做2种方式

  1. 运行时设置

    EditText input = new EditText(this);
    input.setInputType(InputType.TYPE_CLASS_NUMBER);
    
  2. 使用XML

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

答案 5 :(得分:5)

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

android:inputType="numberDecimal"

答案 6 :(得分:4)

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

myEditTxt.setInputType(InputType.TYPE_CLASS_NUMBER);

其中myEditTxt是动态EDIT TEXT对象(名称)

答案 7 :(得分:2)

在Google网站上找到here的更多输入类型和详细信息

答案 8 :(得分: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”));

答案 9 :(得分:1)

editText.setRawInputType(InputType.TYPE_CLASS_NUMBER);

答案 10 :(得分:1)

在java文件中使用以下代码

  

editText.setRawInputType(Configuration.KEYBOARD_QWERTY);

答案 11 :(得分:0)

在xml代码中定义

android:inputType="number"

答案 12 :(得分:0)

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