2012-08-28 52 views
1

我有一個文本框(下級)的調用調用一個包含數據字段拿起一個日期,在我的文本框LowerLevel的顯示它更高的層次形式的函數。回到較低的水平J2ME

的問題是我不能回到我的文本框(下級),因爲出現的DateField

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); 
+0

你在混合LCDUI和LWUIT嗎? –

回答

0

你的錯誤是什麼呢setCurrent(null)錯誤的假設。根據你的問題和代碼片段,它看起來像你期望它以某種方式顯示在form之前顯示的屏幕。這不,看到在API的javadoc(available online)的exaplanation:

應用程序可以傳遞null作爲參數的setCurrent()。這不會將當前的Displayable設置爲null;相反,當前的Displayable保持不變。但是,如果你想使用setCurrent(Displayable)表現出一定的屏幕,而不是當前的應用程序管理軟件可以解釋這一呼籲來自其正在請求被放置到後臺應用程序的請求......

,您需要將此屏幕作爲參數傳遞給setCurrent


爲了完整起見,注意,是setCurrent接受兩個參數,第一個是Alert,其不同的工作原理有點another version,但它是不是適合你的情況,因爲你使用FormAlert