2016-08-24 101 views
1

我试图显示一个虚拟键盘,当TextField的重点。当我在Android手机上测试它时,它的默认键盘正在显示,而不是自定义键盘。codenameone虚拟键盘没有显示在Android设备

Form testForm = new Form(new BorderLayout()); 
    TextField txt = new TextField(); 

    String[][] arrOfNumbers = new String[][]{{"1","2","3",}, {"4","5","6",}, {"7","8","9",}, {"0", "00", "$OK$"}}; 

    VirtualKeyboard virtualKB = new VirtualKeyboard(); 
    virtualKB.addInputMode("NUM_KB", arrOfNumbers); 
    virtualKB.setInputModeOrder(new String[]{"NUM_KB"}); 
    VirtualKeyboard.bindVirtualKeyboard(txt, virtualKB); 

    testForm.add(BorderLayout.NORTH, txt);   
    testForm.show(); 

回答

1

虚拟键盘类是遗留功能的一部分,不应使用。 Codename One使用本地输入,您的代码将使用本地数字输入:

Form testForm = new Form(new BorderLayout()); 
TextField txt = new TextField(); 
txt.setConstraint(TextField.NUMERIC); 

testForm.add(BorderLayout.NORTH, txt);   
testForm.show(); 
+0

感谢Shai的回复。在这种情况下,我想要显示带有几个特殊键和不同外观的数字键盘(例如,在一条水平线中显示所有键)。我怎么做? – Rupali

+0

本机键盘不允许该级别的定制,除非您从头开始实施不可移植的VKB。如果你想完全控制,你可以使用带按钮的对话框。 –