有没有办法让一个Android软键盘只有数字(没有小数点,空格)与Java代码?

我有一个使用不同键盘布局的iPhone应用程序。 有些是自定义的,有些是内置的:

仅数字:

只有数字

小数点:

小数点

ISBN号码的自定义Xbutton:

ISBN号码的自定义X按钮

我想在Android上做同样的事情,但即使是正常的InputType.TYPE_CLASS_NUMBER仍然包含小数点,空格,逗号等。

Android的

我怎样才能在Android中自定义键盘?

使用内置键盘是不可能的。 你将不得不开发一个自定义的软键盘,或者写一个像键盘replace一样工作的内联视图。

我认为这个问题已经在StackOverflow上得到了解答。 看这个:

只在Android软键盘上显示数字button?

@twaddington是正确的,你所要求的将不可能与内置的键盘。 您可以采取的一项措施是防止input非数字,并为您的EditText设置以下XML格式。

 android:inputType="phone" android:digits="1234567890" 

如果你想在代码中,而不是在XML中,我认为这应该工作:

 numericField.setInputType(Configuration.KEYBOARD_12KEY); numericField.setKeyListener(new DigitsKeyListener()); 

要开发自己的数字软键盘,本教程可能会有所帮助。

请使用inputType =“number”,然后您将只获得数字键盘。

 <EditText android:inputType="number" android:layout_width="match_parent" android:layout_height="wrap_content"/> 

我希望这会帮助你。 🙂

有一种方法。 使用

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

它只能在Holo上使用数字键盘,在较低的版本上使用向后兼容的数字键盘。

似乎Android已经添加了我们正在寻找的function。 这是我用于简单的EditText数字input的XML:

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