控制Android EditText的键盘类型(仅限数字)

时间:2012-06-01 20:55:09

标签: android android-softkeyboard android-keypad

我有一个自定义的EditText,用于输入一系列数字。我在类的构造函数中为它设置了DigitsKeyListener(getInputType()= 2)。

这是Galaxy S(4.0)上的“正确的事”。视图获得焦点时出现的键盘只有数字,“空格”,句号,逗号,短划线,退格键和“完成”。

然而,在较旧的2.2设备上,出现的键盘上有字母和更广泛的符号,我不需要这些符号。

我在网上发现了一个建议:

    setRawInputType(Configuration.KEYBOARD_12KEY);

初始化结束时。该值为“3”。当我这样做时,两部手机的情况正好相反。 Galaxy S上的键盘现在有字母(每个数字旁边,就像在手机上),而2.2设备上的键盘是我想要的(即基本上是计算器)。

是否有一种统一的方法来获得适用于不同版本的“计算器”键盘,或者这是我需要为SDK版本< = X做一件事而对于版本>做另一件事的情况。 X?

如果是这样,“X”的值应该是多少?这是一个因特定主要版本而改变的东西吗?

1 个答案:

答案 0 :(得分:5)

您应该将inputType属性设置为"number",或者执行等效的运行时调用。