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

有帮助吗?

解决方案

您可以配置 inputType 您的 EditText

<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);
<EditText
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    ...
    android:inputType="number|phone"/> 

将显示大量垫作为拨号器。

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

  1. 运行时设置

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

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

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

android:inputType="numberDecimal"

如果您使用的是在对话框中输入的EditText或动态创建,你不能从XML设置那么当你使用动态编辑文本这个例子将帮助您设置这种类型的键板等

myEditTxt.setInputType(InputType.TYPE_CLASS_NUMBER);

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

更多的输入类型和细节上的发现此处对谷歌网站

下面的代码将只允许号码“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”));
editText.setRawInputType(InputType.TYPE_CLASS_NUMBER);

使用下面的代码在Java档案

  

editText.setRawInputType(Configuration.KEYBOARD_QWERTY);

在XML代码定义该

android:inputType="number"
EditText number1 = (EditText) layout.findViewById(R.id.edittext); 
number1.setInputType(InputType.TYPE_CLASS_NUMBER);
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top