1

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

这在 Galaxy S (4.0) 上做了“正确的事”。当视图获得焦点时出现的键盘只有数字、“空格”、句号、逗号、破折号、退格和“完成”。

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

我在网上找到了一个建议:

    setRawInputType(Configuration.KEYBOARD_12KEY);

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

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

如果是这样,“X”的值应该是多少?这是否随着特定的主要版本而改变?

4

1 回答 1

5

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

于 2012-06-01T20:58:40.107 回答