2

我有一个严格的数字字段供用户填写,默认输入模式为数字。在“Java(TM) Platform Micro Edition SDK 3.0”模拟器中,以下代码正常工作。

但是,在诺基亚 E72 等物理 QWERTY 键盘设备上却不是这样。

只写数字的限制正在起作用。但该字段的默认输入模式不是。用户必须使用“Shift”+数字来输入数字,而不仅仅是按下数字键。

我正在使用的代码如下:

    inputField.setConstraint(TextField.NUMERIC); 

    inputField.setInputMode("123"); //I tried commenting this line in case it was
                                              //causing a problem, but it still occurred.
    inputField.setInputModeOrder(new String[]{"123"});

如何启用默认的数字写入 - 而无需使用本机输入 (T9) 屏幕?

4

2 回答 2

1

如果您使用 TextArea 这将起作用(因为用户将仅使用本机编辑),如果我没记错的话,您可以覆盖 insertChar() 并阻止这些设备的文本输入。我认为我们在Codename One中修复了这种行为。

于 2013-05-06T10:54:48.830 回答
0

我认为您无法启用此功能。您的限制是对来自设备的中断做出反应。只有在用户中断号输入的情况下,文本字段才会被编辑。

注意,只有在 T9 中使用时,中断才会是数字的。因此,当您不使用 T9 时,系统会将此按键识别为文本输入,而 Lwuit 不会将此输入编辑为数字。

于 2013-05-01T06:21:51.533 回答