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

我只是基本上想切换到数字垫模式,尽快某个 EditText 有焦点。

182594 次浏览

您可以为您的 EditText配置一个 inputType:

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

在 Java 文件中执行:

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

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

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

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

以编程方式进行此操作:

editText.setInputType(InputType.TYPE_CLASS_PHONE);


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

如果你在对话框中使用你的编辑文本或者动态创建,你不能从 xml 中设置它,那么这个例子将帮助你在使用动态编辑文本时设置那种类型的键盘

myEditTxt.setInputType(InputType.TYPE_CLASS_NUMBER);

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

你可以用两种方法

  1. 运行时间设置

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

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

将显示大号码板作为拨号器。

editText.setRawInputType(InputType.TYPE_CLASS_NUMBER);

更多的输入类型和详细信息发现在谷歌网站 给你

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

android:inputType="numberDecimal"

在 xml 代码中定义它

android:inputType="number"

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

SetRawInputType (Configuration.KEYBOARD _ QWERTY) ;

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

以下代码将只允许编号“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”));