我正在编写一个应用程序,它具有一个函数,要求用户在PopupScreen上的BasicEditField中键入文件名。该应用程序适用于Blackberry Storm 2 - 模拟器和真实设备。
问题是该应用无法在BlackBerry Torch上运行 - 无论是模拟器还是设备。我无法在BasicEditField中输入文本。
为什么BlackBerry Torch上的键盘不能与BasicEditField一起使用?我也尝试过EditField而不是BasicEditField,但它也不起作用。
private BasicEditField txtFileName =
new BasicEditField("Name: ", "", 50, EditField.EDITABLE | EditField.FILTER_FILENAME);
...
Constructor()
{
add(txtFileName);
}
答案 0 :(得分:1)
好的,我犯的错误是为 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
}
答案 1 :(得分:0)
这不是您问题的答案,但我有一个可能有用的代码段。我尝试使用以下代码复制您在上面描述的内容。它没有问题:
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);
}
}
抱歉,我对您的问题没有直接的答案,但希望以上代码可以帮助您在应用中找到问题。