- Screen es el objeto que te permite gestionar la pantalla del movil a modo de formulario, puedes usar etiquetas, texto, botones, campos editables, opciones, check button, etc.
- Canvas es la parte grafica, te permite utilizar la pantalla del movil como un lienzo y presentar lineas, ciculos, rectangulos... y de modo mas avanzado imagenes, sprites y capas.
El Form es un contenedor de "Items" al que se le pueden definir una estructura tipo lista (un objeto debajo de otro) o tipo tabla (con objetos en paralelo y en filas) y tambien puedes definir diferentes operaciones que conformarán los menus y botones estandar de la parte inferior del telefono (o a la derecha si permite apaisado).
Siguiendo con los formularios, puedes definir en un mismo MIDlet tantos formularios como quieras y adecuar diferentes pulsaciones para moverte entre ellos. Así puedes definir un comando que te permite ir de un formulario a otro y otro comando para volver al primero.
Usando display.setCurrent(mi_form) puedes hacer que en pantalla se presente uno u otro formulario.
Para que tu MIDlet pueda recoger los comandos de opciones y menus, debe implementar el interfaz CommandListener y sobreescribir la funcion commandAction
Para procesar el comando "salir" (para cerrar tu MIDlet y volver al menu del telefono) debes crear un objeto Command del siguiente modo:
Command exitCommand = new Command("Exit", Command.EXIT, 1)Debes registrar el ComandListener que vas a usar en tu formulario:
mi_form.setCommandListener(this);Y añadir el comando al formulario, para que aparezca como una opcion:
mainForm.addCommand(exitCommand);
Y en la funcion commandAction debes preguntar por cual es el comando que se ha ejecutado:
public void commandAction(Command command, Displayable displayable) {De este modo, cuando pulses en "Exit" se ejecutará el commandAction y si el comando es exitCommand, se lanza la notificación al sistema para que "destruya el MIDLet"
if (command == exitCommand) {
notifyDestroyed();
}
}
Además del CommandListener hay otro modo de asignar y recibir comandos, es el ItemCommandListener y la funcion commandAction en su version "Item" (la otra funcion tiene como parametro un "Displayable", en nuestro caso, un Form).
Funciona del mismo modo que la version para Form, pero en este caso, la opcion solo aparece en el menu si tienes seleccionado el Item al que le añadiste el comando. Por ejemplo si crear un StringItem y le asocias el comando "delCommand", en las opciones el menu sólo aparece "Delete" cuando tienes seleccionado ese Item (cuando lo tienes marcado), sino aparecen unicamente las opciones de comando que haya asignado al Form. Esto puede parecer un poco lioso, pero lo mejor es que probeis a asignar comandos a diferentes elementos y veais como se comporta vuestro telefono, que menus aparecen y como se organizan las opciones en listas, porque esto depende de la version de Symbian y de la marca del telefono.
Si quieres rehacer entero el contenido de un Form, pero no quieres perder la configuracion de comandos... solo cambiar los elementos que contiene, puedes quitar y poner elementos con los metodos append y delete.
- append recibe el Item que quieres añadir y lo coloca "detras" del ultimo elemento.
- delete pide un numero, que es la posicion (o el orden en que lo has añadido) comenzando por el 0 (como siempre en Java) del Item que queires quitar del Form.
- Con el metodo deleteAll() elminas todos los Items del Form y puedes volver a rellenar desde el principio.
En otro post veremos el modo de usar los Canvas, como usar las funciones "paint" y "repaint" y como detectar la pulsacion de la pantalla tactil o de las diferentes teclas de teclado.
No hay comentarios:
Publicar un comentario