I am working on J2ME application. I want to show alert in Form and display another Form from another class. I have tried the following method to show alert开发者_StackOverflow中文版.
public void showMsg()
{
Alert success = new Alert("Data Not found.");
//success.setImage(img2);
success.addCommand(new Command("Ok", Command.OK, 0));
success.addCommand(new Command("Cancel", Command.CANCEL, 0));
success.setCommandListener(this);
success.setTimeout(Alert.FOREVER);
Display.getDisplay(parent).setCurrent(success, chapterForm);
}
After showing the alert I am jumping to another form as:
Display.getDisplay(parent).setCurrent(welcomeForm);
When I run this it don't show the alert but jump to the welComeForm. So, how can I show alert and then jump to another form.
The Alert won't advance automatically to chapterForm
because you have replaced the default listener on the Alert with this
. Use the commandAction() event in the CommandListener interface to get the OK or Cancel from the Alert. Then you can use Display.setCurrent(Displayable d)
to show the Form you want to display.
Display.getDisplay(parent).setCurrent(welcomeForm)
is most likely the reason why it don't show the alert but jump to the welComeForm. To be precise it (device) may show alert for a moment, but as soon as you invoke that setCurrent(welcomeForm)
, it gets momentarily overwritten by welcomeForm.
If you want welcomeForm
to be dissplayed by command from alert, just
wipe out the code
setCurrent(welcomeForm)
from where it is nowinsert that wiped-out code into
this.commandAction
method (this
is command listener you use in your code exerpt)
A nifty solution is to start a new thread after setting the current display to the Alert, and in this new thread you can do a Thread.sleep(2000); in order to wait, and after that you display the new form.
精彩评论