我正在写具有功能要求用户输入文件名进入在PopupScreen一个BasicEditField的应用程序。该应用程序正常工作与黑莓风暴2 - 两个模拟器和真实设备

的问题是,应用程序不在BlackBerry火炬工作 - 既不是模拟器,也不的装置。我不能文本输入到BasicEditField。

为什么没有在键盘上用BasicEditField黑莓Torch工作?我也尝试过的EditField中,而不是BasicEditField但它并不能工作。

private BasicEditField txtFileName = 
    new BasicEditField("Name: ", "", 50, EditField.EDITABLE | EditField.FILTER_FILENAME);
...
Constructor()  
{  
    add(txtFileName);  
}
有帮助吗?

解决方案

OK,我所犯的错误是把错误的返回值的 keyChar 方式。结果 我把结果 的返回true; 结果 在该方法结束时,结果 这应该是结果  的返回super.keyChar(密钥,状态,时间); 结果 下面是在 keyChar 方式正确执行:

public boolean keyChar(char key, int status, int time)
{
    ..................
    /*
    return true; // user cannot type in the BasicField on Torch, but can type on Storm
    */
    return super.keyChar(key,status,time);// works on both Torch and Storm
}

其他提示

这是不是一个回答你的问题,但我有一个代码段可能的帮助。我试着重现你的描述上面使用下面的代码是什么。它的工作没有问题:

private static class AppScreen extends PopupScreen
{
     AppScreen() {
         super(new VerticalFieldManager(), Field.FOCUSABLE);

         BasicEditField txtFileName = new BasicEditField("Name: ", "", 50, 
                 EditField.EDITABLE | EditField.FILTER_FILENAME);
         add(txtFileName);
    }
}

对不起,我没有直接回答你的问题,但希望上面的代码可以帮助你在你的应用程序跟踪问题。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top