152

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

4

13 回答 13

269

inputType您可以为您配置一个EditText

<EditText android:inputType="number" ... />
于 2009-07-13T18:46:06.053 回答
114

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

EditText input = new EditText(this);
input.setInputType(InputType.TYPE_CLASS_NUMBER);
于 2010-10-06T06:52:25.803 回答
54

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

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

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

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

editText.setInputType(InputType.TYPE_CLASS_PHONE);

KeyListener keyListener = DigitsKeyListener.getInstance("1234567890");
editText.setKeyListener(keyListener);
于 2012-02-28T13:43:10.570 回答
18
<EditText
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    ...
    android:inputType="number|phone"/> 

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

于 2013-01-10T13:14:38.437 回答
10

你可以通过 2 种方式做到这一点

  1. 运行时集

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

    <EditText
        ...
        android:inputType="number" />
    
于 2012-12-12T11:01:21.457 回答
7

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

android:inputType="numberDecimal"
于 2014-10-10T01:24:23.377 回答
4

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

myEditTxt.setInputType(InputType.TYPE_CLASS_NUMBER);

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

于 2012-12-04T10:36:14.877 回答
4
editText.setRawInputType(InputType.TYPE_CLASS_NUMBER);
于 2013-04-21T20:16:59.837 回答
4

在java文件中使用下面的代码

editText.setRawInputType(Configuration.KEYBOARD_QWERTY);

于 2017-09-21T05:25:28.887 回答
3

下面的代码将只允许数字“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”));
于 2018-11-01T14:09:29.803 回答
2

更多输入类型和详细信息可google 网站上找到

于 2014-03-20T14:38:46.083 回答
0

在您的 xml 代码中定义它

android:inputType="number"
于 2016-06-27T07:36:03.973 回答
0
EditText number1 = (EditText) layout.findViewById(R.id.edittext); 
number1.setInputType(InputType.TYPE_CLASS_NUMBER);
于 2017-12-21T10:26:20.280 回答