2010-06-02 5 views
1

Eh bien, je suis en train de développer une application dans mon téléphone portable qui va se connecter à mon PC, le problème est que chaque fois que je renvoie un URLRequête au téléphone portable, il montre le formulaire précédent sur l'écran et non une réelle dé, c'est par exemple ce qui se passe dans mon actionListener:Problèmes avec LWUIT dans J2ME sur Nokia E72

public void actionPerformed(ActionEvent ae) { 
    if (ae.getCommand() == guiaUtil.cSelecionar()) { 
     LoginRemote loginRemote = new LoginRemote(); 

     try { 
      //This is the request, returns true or false, does not affect the form 
      loginRemote.login(tLogin.getText(), tPassword.getText()); 
     } catch (Exception e) { 

      GuiaUtil.error(e); 
      return; 
     } 
     guiaUtil.mainApp().startMenu(); 
    } 

} 

Ensuite, dans le "guiaUtil.mainApp() STARTMENU()" J'ai ce

public void startMenu() { 
    if (itemsMenu == null) { 
     itemsMenu = new List(); 
     itemsMenu.setWidth(320); 

     itemsMenu.addItem("Sincronize Spots"); 
     itemsMenu.addItem("Find Spots"); 
     itemsMenu.addItem("Work"); 
     itemsMenu.setFocus(true); 

     this.addComponent(itemsMenu); 
     this.addCommandListener(this); 
     this.addCommand(guiaUtil.cSelect()); 
     Form form = new Form(); 
     form.addComponent(itemsMenu); 

    } 
    form.show(); 

} 

Quoi qu'il en soit, après le retour de la demande, il affiche à nouveau mon formulaire de connexion, au lieu d'afficher la liste des menus

Répondre

0

Vous ne savez pas ce qui se passe dans loginRemote.login(tLogin.getText(), tPassword.getText()); Si vous accédez au réseau, je placerais cette partie dans un thread différent. Informer le fil principal par une sorte de rappel lorsque la "connexion à distance" est terminée, vous pouvez afficher le menuForm de l'edt alors.

0

Vous devez placer le code suivant en dehors de la condition if.

Form form = new Form(); 
form.addComponent(itemsMenu); 

Vous avez deux objet de formulaire. un à l'intérieur si et un autre à l'extérieur de si. L'objet créé à l'intérieur de la boucle perdra la portée à l'intérieur si. Vous montrez un objet de forme à l'extérieur si. C'est pourquoi, l'écran de la liste des menus ne s'affichait pas.

1

Peut-être que vous obtenez une exception, en la traitant avec GuiaUtil.error et en revenant de actionPerformed sans appeler startMenu. Je voudrais déplacer guiaUtil.mainApp().startMenu() à l'intérieur du bloc try/catch.

Questions connexes