LWUIT TextField数字默认输入模式不适用于物理QWERTY键盘

时间:2013-04-30 12:40:06

标签: java java-me lwuit

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

但是,在物理QWERTY键盘设备上,例如诺基亚E72,它不是。

只写数字的限制正在发挥作用。但该字段的默认输入模式不是。用户必须使用' 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)屏幕?

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

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