2012-05-08 5 views
3

나는 간단한 J2ME 응용 프로그램에서 작업 중이며 온라인상에서 이용 약관 페이지에 링크 된 StringItem을 가지고 있습니다.J2ME에서 웹 사이트 링크를 열 수 없습니다

은 내가 StringItem의 설정을 가지고 있으며 (가 연결되어 있다는 느낌을주는) 밑줄이 나타납니다; 하지만 그것을 클릭하면 어떤 동작도 수행하지 않습니다.

내 코드를 보자 :

public class mobiMidlet extends MIDlet implements CommandListener { 

    private Display display; 
    private TextField userName,password; 
    public Form form; 
    private Command login, register, forgot, terms, cancel; 
    private Image img_error, img_login, img_register, img_forgot, img_terms; 
    private String termsurl = "http://example.com/terms.php"; 
    private StringItem termsItem; 

    public mobiMidlet() { 
      form = new Form("Welcome to My App"); 

      termsItem = new StringItem("", "Terms and Conditions", Item.HYPERLINK); 
      termsItem.setDefaultCommand(new Command("terms", Command.ITEM, 1));  

      ItemCommandListener listener = new ItemCommandListener() { 
        public void commandAction(Command cmd, Item item) { 
         if(cmd==terms) 
         { 
          try { 
           platformRequest(termsurl); 
          } catch (Exception e) { 
           e.printStackTrace(); 
          } 
         } 
        } 
       }; 

      termsItem.setItemCommandListener(listener);   

      userName = new TextField("LoginID:", "", 30, TextField.ANY); 
      password = new TextField("Password:", "", 30, TextField.PASSWORD); 
      cancel = new Command("Cancel", Command.CANCEL, 2); 
      login = new Command("Login", Command.OK, 2); 
      try{ 
      img_login = Image.createImage("/logo.jpg"); 
      img_register = Image.createImage("/error2.png"); 
      img_forgot = Image.createImage("/logo.jpg"); 
      img_register = Image.createImage("/error2.png"); 
      }catch(Exception e){ 
      System.out.println(e.getMessage()); 
      } 
    } 


    public void startApp() { 
      display = Display.getDisplay(this); 
      form.append(termsItem); 
      form.append(userName); 
      form.append(password); 
      form.addCommand(cancel); 
      form.addCommand(login); 
      form.setCommandListener(this); 
      display.setCurrent(form); 
    } 

    public void commandAction(Command c, Displayable d) { 
      String label = c.getLabel(); 
      if(label.equals("Cancel")) { 
       destroyApp(true); 
      } else if(label.equals("Login")) { 
      validateUser(userName.getString(), password.getString()); 
      } 
    } 
} 

어떻게 내가 이용 약관 링크를 클릭 할 때 있도록이, 그것은 브라우저에서 페이지를 엽니 다 해결할 수 ?

답변

3

당신은 변수 terms 초기화하지 않은, 그래서 null 남아있다. 따라서 cmd==terms 조건은 항상 false이며 if 문을 입력하지 마십시오.

별도의 라인 termsItem.setDefaultCommand(new Command("terms", Command.ITEM, 1)); 2 :

terms = new Command("terms", Command.ITEM, 1); 
termsItem.setDefaultCommand(terms); 

지금 당신은 기회가있다. 왜 프로그램을 디버그하지 않으시겠습니까? 에뮬레이터에서 실행하고, 중단 점을 commandAction에 넣고 무슨 일이 일어나는 지 봅니다.

관련 문제