ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

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

2019-10-13 05:01:52  阅读:223  来源: 互联网

标签:java textfield java-me lwuit


我已经测试了许多在TextField中提供数字和密码约束的方法.但是它不起作用,请参见下面的代码.

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

上面的代码应在非接触式手机上运行.但它不适用于触控手机.因此,我已经为VKB设置了输入模式值,并将该TextField与VKB绑定,请参见此代码.

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照常显示.这意味着字母数字格式.为什么显示这样?

解决方法:

这是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,textfield,java-me,lwuit
来源: https://codeday.me/bug/20191013/1905749.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有