Вопрос

I have a textfield (lower level) a call a function that call a higher level form that contains a datafield to pick up a date and display it in my textfield lowerlevel.

The problem is I cannot get back to my textfield (lower level) since the datefield appears

public void formdatepicker() {


    final javax.microedition.lcdui.Command CONFIRM_COMMAND
            = new javax.microedition.lcdui.Command("OK",
            javax.microedition.lcdui.Command.OK, 1);
    javax.microedition.lcdui.Command CANCEL_COMMAND
            = new javax.microedition.lcdui.Command("Cancel",
            javax.microedition.lcdui.Command.CANCEL, 2);


    final DateField datefield = new DateField("Pick a date", DateField.DATE);
    form.append(datefield);
    form.addCommand(CONFIRM_COMMAND);
    form.addCommand(CANCEL_COMMAND);
    form.setCommandListener(new CommandListener() {                         
        public void commandAction(javax.microedition.lcdui.Command c, Displayable d) {
             if (c == CONFIRM_COMMAND) {
                Date date = datefield.getDate();
                display.setCurrent(null);// try to hide the current form to get 




             }                              
        }
    });

    Display.getInstance().getJ2MEDisplay().setCurrent(form);
Это было полезно?

Решение

Your mistake is wrong assumption about what setCurrent(null) does. Per your question and code snippet, it looks like you expect it to somehow show the screen that has been displayed prior to form. It doesn't, see the exaplanation in the API javadocs (available online):

The application may pass null as the argument to setCurrent(). This does not have the effect of setting the current Displayable to null; instead, the current Displayable remains unchanged. However, the application management software may interpret this call as a request from the application that it is requesting to be placed into the background...

If you want to use setCurrent(Displayable) to show some screen instead of current one, you need to pass this screen as an argument to setCurrent.


For the sake of completeness, note that there is another version of setCurrent that accepts two parameters, first of which is Alert, which works a bit differently, but it is not applicable in your case because you use Form not Alert.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top