Pessoal, sei que ando postando muito minhas dúvidas por aqui, porém com a ajuda de vocês estou conseguindo resolver meu problemas, então venho por meio desta novamente perguntar se alguem sabe como que eu faço pra criar menu em tempo de execução…
EXEMPLO: recebo uma mensagem com o nome do menu e ele é criado automaticamente e tratado no commandlistener…
MENSAGE: “Media Player”
menu:
-> Media Player
tratamento deste menu:
public void commandAction(Command c, Displayable d) {
else if (c.getLabel().equals(“Media Player”)) {
telacliente.envia_mensagem(util.getPrimeiroServicoDescoberto(), “Media Player”); // aqui ele envia a mensagem assim que clicado no menu.
}
Olá, não sei se entendi direito seu problema, mas pelo que entendi vc está querendo fazer com que seu menu mude uma vez que vc o tenha criado e seu programa esteja rodando (em outras palavras “em tempo de execução” ). Enfim, se vc estiver usando “List” para fazer o menu basta vc dar um append no novo item do menu que vc queira que apareça:
//Criação da lista
List lista = new List("List Name", List.TYPE, new String[] {elemtens}, new Image[] {images});
.
.
.
//Adiciona um novo elemento ao List em após ter sido instanciado
lista.append(StringNovoItem, ImageNovoItem);
getDisplay().setCurret(lista);
basicamente isso.
Ve ae se isso resolve seu problema… Senão volta a perguntar ae
Pelo que entendi, acredito que neste caso uma solução boa seria você criar uma nova classe com os tratamentos que desejar, assim como você gostaria de fazer no commandAction.
No caso de optar pela nova classe tratada, no commandAction você somente chamaria esta nova classe, de preferência dentro de uma thread para otimizar o desempenho da aplicação.
Ficaria mais ou menos assim…
public void commandAction(Command c, Displayable d){
if (c.getLabel().equals("Media Player")){
new Thread() {
public void run() {
METODO_QUE_CHAMA_NOVA_CLASSE();
}
}.start();
}
Assim você chama sua nova classe, faz as interações que precisar e quando quiser voltar, é só fazer um tratamento para focar a classe que estava.