2012-05-01 8 views
3

編集:私は、私はそれが新しいフォームを表示するために、私はちょうど
を管理するリストで選択した要素を取得助ける必要がありますが、私は見つける多くの問題を抱えていると信じて

ソース3.0で動作するコード。



コマンドリスナーと新しい形のJ2MEと混同

私は、ユーザーが
を追加し、選択した日付に基づいてイベントを削除する日付を選択することを可能にするアプリケーションを作成しようとしてきました。これまで私は最初の画面を作成しました
これは、ユーザーが選択できるオプションのリストです。
これらのオプションは以下のとおりです。

  • セレクト日
  • 私がいる問題は、私がどのようにまわりで私の頭を取得することはできませんでイベント
  • ブラウズイベント

を削除

  • イベントを追加します。選択された項目をリスト内の
    に基づいて新しい形式で表示します。小さなチュートリアルで、選択した項目を表示するリスナー
    が追加されましたが、リスト内で選択された項目が
    になっていて、選択した項目に基づいて新しいフォームを作成する方法がわかりません。 ?

    ここまでは私のコードです。

    import javax.microedition.lcdui.Alert; 
        import javax.microedition.lcdui.AlertType; 
        import javax.microedition.lcdui.Command; 
        import javax.microedition.lcdui.CommandListener; 
        import javax.microedition.lcdui.Display; 
        import javax.microedition.lcdui.Displayable; 
        import javax.microedition.lcdui.List; 
        import javax.microedition.lcdui.Form; 
        import javax.microedition.midlet.MIDlet; 
    
        public class mainMidlet extends MIDlet implements CommandListener { 
    
         private Display display; 
         private List list = new List("Please Select a Option", List.IMPLICIT); 
         private Command select = new Command("Select", Command.SCREEN, 1); 
         private Form form; 
         Alert alert; 
    
         public mainMidlet() { 
         display = Display.getDisplay(this); 
    
         list.append("Select Date", null); 
         list.append("Add Events", null); 
         list.append("Remove Events", null); 
         list.append("Browse Events", null); 
         list.addCommand(select); 
         list.setCommandListener(this); 
    
         } 
    
         public void startApp() { 
         display.setCurrent(list); 
         } 
    
         public void pauseApp() { 
         } 
    
         public void destroyApp(boolean unconditional) { 
         } 
    
         public void commandAction(Command command, Displayable displayable) { 
         if (command == List.SELECT_COMMAND) { 
          String selection = list.getString(list.getSelectedIndex()); 
          alert = new Alert("Option Selected", selection, null, null); 
          alert.setTimeout(Alert.FOREVER); 
          alert.setType(AlertType.INFO); 
          display.setCurrent(alert); 
         } else if (command == select) { 
          destroyApp(false); 
          notifyDestroyed(); 
         } 
         } 
        } 
    
  • +0

    切り替えますか?回答者は["カメレオンの質問"(http://meta.stackexchange.com/questions/43478/exit-strategies-for-chameleon-questions "MSOの関連ディスカッション")を嫌う傾向があります – gnat

    答えて

    4

    あなたは、いくつかの形式を追加することができますし、それらあなたが(それ、答えられるように思われていない)新しい質問を投稿の代わりに、このいずれかを編集考慮しなかった

    public void commandAction(Command command, Displayable displayable) { 
         if (displayable == list) { 
          if (command == List.SELECT_COMMAND) { 
           switch (list.getSelectedIndex()) { 
            case 0: // select date 
             display.setCurrent(someForm); 
             break; 
            case 1: //add events 
             display.setCurrent(someOtherForm); 
             break; 
           } 
          } else if (command == select) { 
          destroyApp(false); 
          notifyDestroyed(); 
          } 
         } 
         if (displayable == someForm) { 
          //but it's better practice to make each form a different class implementing CommandListener and it's own commandAction. And leave the display public static in MIDlet class 
          //... 
         } 
        } 
    
    +0

    スイッチとケースを完全に忘れてしまった、あなたに今すぐ行っていただきありがとうございます:D – Skeng

    +1

    延長の場合に実装する必要がありますか?私はそれを変更しました。 –

    +0

    @NiteshVerma絶対に。ありがとう。 –

    関連する問題