2012-12-27 26 views
1

我正在使用java我,我使用窗體displayables構建了一個應用程序。我試圖根據用戶在文本字段項目中的輸入切換到其他表單。例如,我希望用戶能夠在文本字段中輸入數字「1」,然後將其輸入到form1或輸入「2」並輸入到form2等。使用文本字段切換到可顯示的Java Me

這是做什麼的代碼?

這裏是我做過什麼,但預期它不工作:

form.setItemStateListener(new ItemStateListener() { 


      public void itemStateChanged(Item item) { 
       if (item == TextField) { 
        if ("1".equals(TextField.getString())) { 
         switchDisplayable(null, form1); 
       } 
      } 
} 

爲勸我已經做到了。我向文本字段項添加了一個命令,並在其上偵聽以讀取文本字段內容,然後將內容作爲字符串進行比較以切換窗體。看到我的代碼如下,仍然無法正常工作。我想也許有些東西我錯過了,或者我的邏輯不正確。

 form.setCommandListener(new CommandListener() { 

      public void commandAction(Command command, Displayable displayable) { 
       if (command == getTextFieldItemCommand()) { 
        if ("1".equals(TextField.getString())) { 
         switchDisplayable(null, form1); 
        } else if ("2".equals(TextField.getString())){ 
         switchDisplayable(null, form2); 
        } 
       } 
      } 

回答

1

它看起來像你期望的時候,感覺方便你,就像在文本字段中的每個字符輸入到被調用的方法itemStateChanged

以上的預期是錯誤的,指定的行爲是API javadocs解釋說:

它是由設備時,會考慮一個新的值來決定都已經進入到一個項目......在一般情況下,預計不會聽者將在每次更改後使用itemStateChanged你所希望的方式讓人很沒有意義被稱作......

上面給出的,考慮改變你的MIDlet的設計。


我一會可能只是添加一個命令Go和命令監聽到窗體或文本字段和閱讀文本字段內容時,用戶調用該命令找出哪些顯示他們想轉行。