0

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

这是我的问题:

我已经将一个从资源编辑器生成的 LWUIT 1.5 应用程序放入 Netbeans,我想用我自己的按钮自定义 VirtualKeyboard,然后将它们绑定到 TextField,但我不知道在哪里放置代码。我已经尝试将它放入我的表单“MyForm”的 BeforeShow 中,或者像这样在 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 的属性中,约束是数字的。我知道数字和密码约束存在错误,但我尝试将 ANY 约束赋予 TextField,但它不起作用。

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

4

1 回答 1

1

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

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

于 2012-08-20T10:04:16.907 回答