2012-05-08 15 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というステートメントは入力しないでください。 2へ

セパレートラインtermsItem.setDefaultCommand(new Command("terms", Command.ITEM, 1));

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

今、あなたはチャンスを持っています。 なぜプログラムをデバッグしないのですか?エミュレータで実行し、ブレークポイントをcommandActionに入れ、何が起こるかを見てください。

関連する問題