我有一个自定义的EditText,用于输入一系列数字。我在类的构造函数中为它设置了DigitsKeyListener(getInputType()= 2)。
这是Galaxy S(4.0)上的“正确的事”。视图获得焦点时出现的键盘只有数字,“空格”,句号,逗号,短划线,退格键和“完成”。
然而,在较旧的2.2设备上,出现的键盘上有字母和更广泛的符号,我不需要这些符号。
我在网上发现了一个建议:
setRawInputType(Configuration.KEYBOARD_12KEY);
初始化结束时。该值为“3”。当我这样做时,两部手机的情况正好相反。 Galaxy S上的键盘现在有字母(每个数字旁边,就像在手机上),而2.2设备上的键盘是我想要的(即基本上是计算器)。
是否有一种统一的方法来获得适用于不同版本的“计算器”键盘,或者这是我需要为SDK版本< = X做一件事而对于版本>做另一件事的情况。 X?
如果是这样,“X”的值应该是多少?这是一个因特定主要版本而改变的东西吗?
答案 0 :(得分:5)
您应该将inputType
属性设置为"number"
,或者执行等效的运行时调用。