当我使用此方法时,它会在黑莓模拟器上抛出非法状态表达式。
protected boolean keyChar(char c, int status, int time)
{
if (c == Keypad.KEY_ESCAPE)
{
UiApplication.getUiApplication().popScreen(UiApplication.getUiApplication().getActiveScreen());
}
return super.keyChar(c, status, time);
}
如果我给返回类型为true,则模拟器上不显示错误。
当我使用super.keyChar(c,status,time)时。它抛出了非法的表达。
但在设备中没有错误显示。只在黑莓模拟器上。是什么问题。
答案 0 :(得分:1)
试试这个:
protected boolean keyChar(char c, int status, int time)
{
if (c == Keypad.KEY_ESCAPE)
{
UiApplication.getUiApplication().invokeAndWait(new Runnable() {
public void run() {
UiApplication.getUiApplication().popScreen(UiApplication.getUiApplication().getActiveScreen());
}
});
return true;
}
return super.keyChar(c, status, time);
}
答案 1 :(得分:0)
protected boolean keyChar(char c, int status, int time)
{
if (c == Characters.ESCAPE)
{
UiApplication.getUiApplication().popScreen(UiApplication.getUiApplication().getActiveScreen());
}
return true;
}
试试这个。这将有效。
您可以通过{block}中的returning true
和来自其他部分的return super.keyChar(c, status, time);
来解决您的问题。 :)