Ae pessoal estou começando um projeto para Vendas(aquele história cliente, produto, pedidos, etc). Só que qdo apresentei as primeira linhas de código o coordenador de projetos me fez a seguinte proposta:
“Porque vc não faz um método que cria esse botões de ação? Tipo um addMenu(“downloads”) e ele já aparecer lá no menu opções do celular. Assim vc tiraria essa duplicação de linhas”
Duplicação que ele fala é que não precisaria instanciar outro objeto na mão para fazer a opção “Iniciar”, como exemplifica abaixo.
Command cmdDownload = new Command("Downloads", Command.SCREEN, 1);
Command cmdIniciar = new Command("Iniciar", Command.SCREEN, 2);
addCommand(cmdDownload);
addCommand(cmdIniciar);
setCommandListener(this);
Até aí tudo bem fiz uma classe que controla essa parte do menus, mas ele não está executando os eventos. Qdo clico no botão Login deveria aparecer um alert, só que não exibe.
Será que alguém poderia me ajudar?
public class OpcaoMenu extends Form implements CommandListener
/**TEM ESSE MÉTODO. Que adiciona menu na tela do tipo SCREEN */
public void addMenuOpcoes(String opcao, int prioridade)
{
Command cmdComando = new Command(opcao, Command.SCREEN, prioridade);
addCommand(cmdComando);
setCommandListener(this);
}
/** E este outro que deveria receber o command pegar a prioridade dele e efetuar uma determinada ação de uma classe. */
public void verificaOpcao(Command c)
{
switch (c.getPriority())
{
case 1:
Alert a = new Alert("tarara");
a.setTimeout(Alert.FOREVER);
display.setCurrent(a);
break;
}
}
public class Main extends MIDlet implements CommandListener
/** Esse que insere Objetos. O metodo addMenuCancelar adicio opcçoes do tipo Command.CANCEL*/
public void init()
{
main.addMenuOpcoes("Troca de Senha", 2);
main.addMenuCancelar("Login", 1);
}
/** E este que deveria pegar os eventos. Ve se o evento disparado foi um Command.SCREEN se sim efetuar a acao da classe OpcaoMenu(OpcaoMenu main).*/
public void commandAction(Command c, Displayable ds)
{
if (c.getCommandType() == Command.SCREEN)
{
main.verificaOpcao(c);
} else
{
Alert a = new Alert("Erro no commandAction");
a.setTimeout(Alert.FOREVER);
display.setCurrent(a);
}
}