在我的应用程序中,当我点击我显示一个对话框时。当我在那个对话框中按下是的时候,它给了我非法的州例外。但我想回到上一个屏幕。如果我点击菜单并单击关闭,则它将返回上一屏幕。以下是我的代码:
public boolean keyDown(int keycode, int time) {
if (Keypad.KEY_ESCAPE == Keypad.key(keycode)) {
int result = Dialog.ask(Dialog.D_YES_NO, "Do you want to edit the list?");
if (result == Dialog.YES)
{
try
{
UiApplication.getUiApplication().popScreen(this);
}
catch (Exception e)
{
e.printStackTrace();
}
// onClose();
}
else
{
return true;
}
} // end if
return false;
}
请帮助..
答案 0 :(得分:2)
当您单击设备中的后退按钮时,将调用默认的 onclose()方法。所以,试着这样做;
protected boolean onSavePrompt()
{
return true;
}
public boolean onClose()
{
int choose=Dialog.ask(Dialog.D_YES_NO, "Close the screen?");
if(choose==Dialog.YES)
{
return super.onClose();
}
return true;
}
这是更好的方式;如果你像上面那样使用那么你可能会遇到一个问题;那就是:
如果您在第一个屏幕中使用该方法,那么在弹出屏幕时根据您的代码然后显示堆栈中没有屏幕(因为它是第一个屏幕);所以你可能会遇到这类问题;
试试这个;