Tela Congelando  XML
Índice dos Fóruns » Google Android e Java Micro Edition (ME)
Autor Mensagem
Jedi_FeniX
Virtual Machine Man
[Avatar]

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
Vinci
Entusiasta Java
[Avatar]

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


Jedi_FeniX
Virtual Machine Man
[Avatar]

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
Jedi_FeniX
Virtual Machine Man
[Avatar]

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
 
Índice dos Fóruns » Google Android e Java Micro Edition (ME)
Ir para:   
Powered by JForum 2.1.8 © JForum Team