如何将自定义虚拟键盘​​代码设置为资源编辑器生成的状态机代码(LWUIT或Codenameone)

时间:2012-08-19 19:20:45

标签: lwuit codenameone lwuit-vkb

在我决定提出这个问题之前,我已经在这里搜索了答案,但没有找到。抱歉我的英语不好,但不是我的母语。

这是我的问题:

我已经从资源编辑器生成了一个LWUIT 1.5应用程序到Netbeans,我想用我自己的按钮自定义VirtualKeyboard,然后将它们绑定到TextField,但我不知道在哪里放置代码。我已经尝试将它放入BeforeShow my Form“MyForm”,或者像PostShow一样:

protected void beforeMyForm(Form f) {
   // If the resource file changes the names of components this call will break notifying you that you should fix the code
super.beforeMyForm(f);

VirtualKeyboard vkb = new VirtualKeyboard();

//I declared the new input
String[][] CALC_NUM = new String[][]{
        {"1", "3", "5",},
        {"7", "9", "0",},
        {".","$OK$"}
};
//Added the new input mode
vkb.addInputMode("137_C", CALC_NUM);
vkb.setInputModeOrder(new String[]{"137_C"});

//Bind the vkb to my TextField
VirtualKeyboard.bindVirtualKeyboard(findTfCalc(Display.getInstance().getCurrent()), vkb);

}

在beforeShow中有一个NullPointerException并且在postShow中没有任何反应。

在TextField的属性中,约束为Numeric。我知道有一个数字和密码约束的错误,但我已经尝试将ANY约束赋予TextField,但它不起作用。

有人可以帮我一把吗? 在Codenameone中它会是一样的吗? 非常感谢。

1 个答案:

答案 0 :(得分:1)

您正在使用Display.getInstance().getCurrent()而非使用f,在之前的show方法中,新表单还不是当前表单。

http://codenameone.blogspot.com/2010/06/pimp-virtualkeyboard-by-chen-fishbein.html