2012-05-08 3 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)); на два:

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

Теперь у вас есть шанс. Кстати, почему бы не отлаживать программу? Запустите его в эмуляторе, положите точку останова в commandAction и посмотрите, что произойдет.

Смежные вопросы