如何在不强制数字input的情况下默认使用EditText上的数字键盘?

这已经在网上其他地方被要求无济于事。 有没有什么办法可以让Android在显示数字软键盘的时候关注EditText ,但是仍然可以input任何文字?

我想让用户input数量(例如“1公斤”,“2升”),所以只需设置inputType="number"将不起作用。

添加下面的代码行,它会做的伎俩:)

editText.setRawInputType(Configuration.KEYBOARD_QWERTY);

这将首先显示数字小键盘,但也允许您input自由文本。

更多信息在这里 。

这可能是设备依赖,但你有没有尝试过:

  android:inputType="phone" 

所有inputtypes链接

在EditText的xml中,这会给你数字键盘的键盘,但是你仍然可以切换到字母的,如果你想。 (至less在我的Nexus One上)。

请注意:setRawInputType(InputType.TYPE_CLASS_NUMBER);

在某些设备上具有预期的效果,但不是其他设备

在HTC它工作正常,但在星系标签II,你只能得到数字键盘,没有办法切换回阿尔法。

用XML编写代码,android:numeric =“integer”android:inputType =“phone”android:digits =“1234567890”

它看起来像你正在处理的基本问题是:我怎样才能让用户input数量?

一个合适的答案是:数字input,与单位的某种forms的类别select配对。 例如广播,下拉,或微调。 这可能更容易使用,也可以节省您每次validationinput的麻烦。

你也可以只有铁的cojones和写一个自定义的软键盘。

我想了很多不同的组合,但是这似乎工作正常:

 setRawInputType(InputType.TYPE_CLASS_NUMBER); 

关键在于setRawInputType(int)的描述:

直接更改文本视图的内容types整数, 而不修改任何其他状态