我已经测试了许多在TextField中提供数字和密码约束的方法。但是它不起作用,请参见下面的代码。
textField.setConstraint(TextField.NUMERIC | TextField.PASSWORD); textField.setInputModeOrder(new String[]{"123"});
上面的代码应在非接触式手机上运行。但它不适用于触控手机。所以我已经设置了输入模式值VKB并将其TextField与绑定VKB,请参见以下代码。
VKB
TextField
TextField txt = new TextField(); txt.setConstraint(TextField.NUMERIC |TextField.PASSWORD); txt.setInputModeOrder(new String[]{"123"}); VirtualKeyboard vkb = new VirtualKeyboard(); vkb.setInputModeOrder(new String[]{VirtualKeyboard.NUMBERS_MODE}); VirtualKeyboard.bindVirtualKeyboard(txt, vkb);
VirtualKeyboard.NUMBERS_MODE当我使用上述代码时无法正常工作。VKB像往常一样显示格式。那就是AlphaNumeric格式。为什么显示这样?
VirtualKeyboard.NUMBERS_MODE
AlphaNumeric
这是LWUIT中的错误,感谢您引起我们的注意,我将在接下来的几周内尝试对其进行修复。会更快,但是我们需要尽快飞往JavaOne。
如果要在本地尝试修复,只需在VirtualKeyboard.java中更新此方法:
public void setInputType(int inputType) { if((inputType & TextArea.NUMERIC) == TextArea.NUMERIC || (inputType & TextArea.PHONENUMBER) == TextArea.PHONENUMBER) { setInputModeOrder(new String []{NUMBERS_MODE}); return; } if((inputType & TextArea.DECIMAL) == TextArea.NUMERIC) { setInputModeOrder(new String []{NUMBERS_SYMBOLS_MODE}); return; } setInputModeOrder(defaultInputModeOrder); }