有没有一种使用Java代码获取仅包含数字(无小数,空格)的Android软键盘的方法?

3
我有一个使用不同键盘布局的iPhone应用程序。其中一些是自定义的,另一些是内置的:
只有数字:
Decimals:
为ISBN号码定制的自定义X按钮:
我想在Android上做同样的事情,但即使是正常的InputType.TYPE_CLASS_NUMBER仍然包括小数点、空格、逗号等。
如何在Android中自定义键盘?

查看这篇帖子可能对您有所帮助:https://dev59.com/dGsz5IYBdhLWcg3wR1zC - ρяσѕρєя K
5个回答

4
我认为这个问题已经在StackOverflow上得到了解答。请看这个链接:如何在Android上只显示数字键盘? @twaddington说的正确,使用内置键盘无法实现你所要求的功能。但你可以在EditText的XML中设置以下内容来防止非数字字符输入。
android:inputType="phone"
android:digits="1234567890"

如果您想在代码中实现而非XML,我认为这应该可以工作:
numericField.setInputType(Configuration.KEYBOARD_12KEY);
numericField.setKeyListener(new DigitsKeyListener());

如果您想开发自己的数字软键盘,这个tutorial可能会有所帮助。


3

使用内置键盘是不可能实现的。您需要开发一个自定义软键盘,或编写一个类似于键盘替换的内联视图。


现在的安卓系统里面没有内置的键盘吗?我想要一个带有0-9数字、删除和回车按钮的键盘。 - Prashanth VG

0

看起来Android已经添加了我们正在寻求的功能。这是我用于简单EditText数字输入的XML:

    android:inputType="numberPassword"
    android:digits="0123456789"
    android:singleLine="true"
    android:ems="4"
    android:textColor="@android:color/black"
    android:gravity="center"

0
请使用inputType =“number”,这样您将只获得数字键盘。
<EditText android:inputType="number"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"/>

希望能对你有所帮助。:)


0

有一种方法。使用

numericField.setInputType(InputType.TYPE_NUMBER_VARIATION_NORMAL|InputType.TYPE_CLASS_NUMBER);

它只在Holo上预期数字键盘,并向下兼容较低版本的数字键盘。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接