codenameone虚拟键盘未在android设备中显示

codenameone虚拟键盘未在android设备中显示,codenameone,Codenameone,当TextField聚焦时,我试图显示一个虚拟键盘。当我在安卓手机上测试它时,显示的是它的默认键盘,而不是定制键盘 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"

当TextField聚焦时,我试图显示一个虚拟键盘。当我在安卓手机上测试它时,显示的是它的默认键盘,而不是定制键盘

    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();

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

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

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

谢谢Shai的回复。在本例中,我希望显示一个带有两个特殊键和不同外观的数字键盘(例如,在一条水平线上显示所有键)。我该怎么做呢?本机键盘不允许这种级别的定制,除非您从头开始实现VKB,它是不可移植的。如果您想要完全控制,您可以使用带有按钮的对话框。