在我决定提出这个问题之前,我已经在这里搜索了答案,但没有找到。抱歉我的英语不好,但不是我的母语。
这是我的问题:
我已经从资源编辑器生成了一个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中它会是一样的吗? 非常感谢。
答案 0 :(得分:1)
您正在使用Display.getInstance().getCurrent()
而非使用f
,在之前的show方法中,新表单还不是当前表单。
http://codenameone.blogspot.com/2010/06/pimp-virtualkeyboard-by-chen-fishbein.html