java - 为什么数字约束在 LWUIT 中的虚拟键盘上不起作用?

标签 java java-me textfield lwuit

我已经测试了很多在 TextField 中给出数字和密码约束的方法。但它不起作用,请参见下面的代码。

textField.setConstraint(TextField.NUMERIC | TextField.PASSWORD);
textField.setInputModeOrder(new String[]{"123"});

以上代码应该适用于非触控手机。但它不适用于触摸手机。所以我为 VKB 设置了输入模式值,并将 TextFieldVKB 绑定(bind),请参阅此代码。

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 格式。为什么会这样显示?

最佳答案

这是 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);
}

关于java - 为什么数字约束在 LWUIT 中的虚拟键盘上不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7579142/

相关文章:

java - 调用命令行程序的Web应用程序框架

java-me - 寻找对J2ME友好的IoC容器的工作正在进行中!

java swing 验证文本字段

ios - 使用 CustomCell 文件提取文本字段值

c++ - Symbian Audio路径问题

user-interface - Flutter:如何移动文本字段字符计数器?

java - 在 java 中获取带有命名空间的 XML 节点

java - 运行代码时出现 Mockito 异常

java - 如何返回 Pane ?

java - 如何在netbeans中运行Maven JME项目?