| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/06/2009 18:18:42
|
Jedi_FeniX
Virtual Machine Man
![[Avatar]](/images/avatar/06ab8d9df63b836129099247301c038b.jpg)
Membro desde: 26/04/2007 14:32:30
Mensagens: 586
Offline
|
Quando tento mudar de uma tela para outra ela simplesmente congela.
Tenho uma tela com imagem carregada, quando clico em um determinado botão para mudar para outra tela e carregar uma outra imagem a aplicação simplesmente para não tem nenhum erro.
Eu acho que o problema pode estar nesta parte do código:
O que está errado?
|
www.bau-de-dev.com |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/06/2009 15:11:42
|
Vinci
Entusiasta Java
![[Avatar]](/images/avatar/68cb0fd246137def7b82228fbce9df30.jpg)
Membro desde: 06/04/2009 14:21:01
Mensagens: 17
Offline
|
Não consegui ver o erro por essa parte do código descrita acima .
Sua MIDLET está implementando CommandListener certo??
se sim, então ela tem o metodo commandAction(Command c, Displayable d)
para fazer a transição de tela gealmente eu faço assim:
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
/**
* @author rvinci
*/
public class TestMidlet extends MIDlet implements CommandListener {
private class MainMenu extends List {
public MainMenu() {
super("Title", List.IMPLICIT);
append("um", null);
append("Two", null);
append("Three", null);
append("Four", null);
addCommand(exitCommand);
}
}
private class SubMenu extends List {
public SubMenu() {
super("Sub Menu", List.IMPLICIT);
append("Apple", null);
append("Pear", null);
append("Banana", null);
addCommand(backCommand);
}
}
private Display display;
private MainMenu mainMenu = new MainMenu();
private SubMenu subMenu = new SubMenu();
public static final Command exitCommand =
new Command("Exit", Command.EXIT, 1);
public static final Command backCommand =
new Command("Back", Command.BACK, 1);
public TestMidlet() {
}
protected void destroyApp(boolean unconditional)
throws MIDletStateChangeException {
exitMIDlet();
}
public void exitMIDlet() {
notifyDestroyed();
}
public Display getDisplay() {
return display;
}
protected void initMIDlet() {
mainMenu.setCommandListener(this);
subMenu.setCommandListener(this);
getDisplay().setCurrent(mainMenu);
}
protected void pauseApp() {
}
protected void startApp()
throws MIDletStateChangeException {
if (display == null) {
display = Display.getDisplay(this);
initMIDlet();
}
}
public void commandAction(Command c, Displayable d) {
if (d == mainMenu & c == exitCommand) {
exitMIDlet();
} else if (d == mainMenu & c == List.SELECT_COMMAND) {
int item = mainMenu.getSelectedIndex();
switch (item) {
case 0:
getDisplay().setCurrent(subMenu);
System.out.println("Selecionou o primeiro");
break;
case 1:
getDisplay().setCurrent(subMenu);
System.out.println("Selecionou o segundo");
break;
case 2:
getDisplay().setCurrent(subMenu);
System.out.println("Selecionou o terceiro");
break;
case 3:
getDisplay().setCurrent(subMenu);
System.out.println("Selecionou o quarto");
break;
}
} else if(d == subMenu & c == backCommand){
display.setCurrent(mainMenu);
}else if (d == subMenu & c == List.SELECT_COMMAND) {
int item = subMenu.getSelectedIndex();
switch (item) {
case 0:
display.setCurrent(mainMenu);
System.out.println("Selecionou o primeiro do submenu");
break;
case 1:
display.setCurrent(mainMenu);
System.out.println("Selecionou o segundo do submenu");
break;
case 2:
display.setCurrent(mainMenu);
System.out.println("Selecionou o terceiro do submenu");
break;
}
}
}
}
esse é um exemplo de transição de tela com um list, tenta implentar no seu projeto
pelo que eu entendi é isso que você está procurando
espero ter ajudado
Abraços
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/06/2009 16:46:18
|
Jedi_FeniX
Virtual Machine Man
![[Avatar]](/images/avatar/06ab8d9df63b836129099247301c038b.jpg)
Membro desde: 26/04/2007 14:32:30
Mensagens: 586
Offline
|
Eu acredito que o erro está nesta parte:
Parece que quando o setCurrent de Display é "setado" a tela não muda imediatamente, parece que tem um delay, pelo o que eu entendi, pode ser que esteja errado...
O problema que eu tenho que parar a aplicaçõa nesta tela e depois continuar quando um comando for disparado, como eu posso parar a aplicação e exibir uma determinada tela?
This message was edited 1 time. Last update was at 09/06/2009 16:47:17
|
www.bau-de-dev.com |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/06/2009 15:48:55
|
Jedi_FeniX
Virtual Machine Man
![[Avatar]](/images/avatar/06ab8d9df63b836129099247301c038b.jpg)
Membro desde: 26/04/2007 14:32:30
Mensagens: 586
Offline
|
Vou colocar mais uma dúvida em relação ao wait.
Tenho uma classe MIDlet que no método startApp está assim:
E no método destroyApp está igual, sendo que no destroyApp a "tela nova" não aparece e no startApp a tela aparece, alguém saberia por que?
|
www.bau-de-dev.com |
|
|
 |
|
|
|
|