2012-05-01 6 views
3

편집 : 나는이 새로운 양식을 표시하는 난 그냥
관리 목록에서 선택한 요소를하는 데 도움이 필요하지만, 내가 찾는 많은 문제에 봉착 생각
소스 코드가
인 코드.


명령 리스너와 새로운 형태의 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

    연장 할 경우 구현해야합니까? BTW 나는 그것을 바 꾸었습니다. –

    +0

    @NiteshVerma 절대적으로. 감사. –