Ir al contenido principal

Escuchar los cambios en un Formulario

Hola, ayer un usuario le surgió la duda de como modificar un TextField desde la opción que se elija de un ChoiceGroup y aquí les dejo un pequeño tuto que muestra como realizar cambios a partir de cambios que sufra el formulario, como por ejemplo: el usuario elije una opción de un ChoiceGroup, el usuario escribe en un TextField y cualquier otro cambio que el usuario produzca sobre el formulario.

1- Creamos nuestro MIDlet y creamos un Formulario:


public class InicioMidlet extends MIDlet {
    Display pantalla;
    Form formulario;
    boolean inicio = false;

    public void startApp() {
        if(!inicio){
            pantalla = Display.getDisplay(this);
            inicio = true;

            formulario = new Form("Mi Formulario");
        }

        pantalla.setCurrent(formulario);
    }

    public void pauseApp() {
    }

    public void destroyApp(boolean unconditional) {
    }

}



2 - Ahora creamos los items del Formulario, en este caso un TextField y un ChoiceGroup:


// choice y text, están declarados como atributos



choice = new ChoiceGroup("Choice:", ChoiceGroup.EXCLUSIVE);
choice.append("Opcion A", null);
choice.append("Opcion B", null);
choice.append("Opcion C", null);

text = new TextField("Texto:", "", 30, TextField.ANY);



3 - Agregamos estos items al formulario:


formulario.append(text);
formulario.append(choice);



4 - Para poder escuchar los cambios en el formulario, nuestra clase debe implementar la interface: ItemStateListener, así que la implementamos en nuestra clase MIDlet:


public class InicioMidlet extends MIDlet implements ItemStateListener {


5 - Al implementar ItemStateListener, deberemos crear el método: itemStateChanged


public void itemStateChanged(Item item) {

}


6 - Ahora le agregamos al formulario que nuestra clase escuchara estos cambios:


formulario.setItemStateListener(this);


7 - Ya tenemos nuestro formulario capaz de escuchar todos los cambios que se produzcan. Si se elije una opción en el ChoiceGroup agregamos un texto predeterminado al TextField entonces:


// Si el item que cambio fue el ChoiceGroup

if(item == choice){

            // Segun el item seleccionado en el ChoiceGroup agregamos el texto
            switch(choice.getSelectedIndex()){
                case 0:
                    // Si eligió la opcion A escribimos "Lola" en el TextField
                    text.setString("lola");
                    break;
                case 1:
                     // Si eligió la opcion B escribimos "mono" en el TextField
                    text.setString("mono");
                    break;
                case 2:
                     // Si eligió la opcion C escribimos "caso" en el TextField
                    text.setString("caso");
                    break;
            }
        }



8 - Así podemos escuchar los distintos cambios que se producen en un Formulario. Cualquier duda que tuvieran pueden dejarla aquí o directamente en el Grupo de Java ME.

Codigo Completo:


public class InicioMidlet extends MIDlet implements ItemStateListener {
    Display pantalla;
    Form formulario;
    ChoiceGroup choice;
    TextField text;
    boolean inicio = false;

    public void startApp() {
        if(!inicio){
            pantalla = Display.getDisplay(this);
            inicio = true;

            choice = new ChoiceGroup("Choice:", ChoiceGroup.EXCLUSIVE);
            choice.append("Opcion A", null);
            choice.append("Opcion B", null);
            choice.append("Opcion C", null);

            text = new TextField("Texto:", "", 30, TextField.ANY);

            formulario = new Form("Mi Formulario");
            formulario.setItemStateListener(this);
            formulario.append(text);
            formulario.append(choice);
        }

        pantalla.setCurrent(formulario);
    }

    public void pauseApp() {
    }

    public void destroyApp(boolean unconditional) {
    }

    public void itemStateChanged(Item item) {
        if(item == choice){
            switch(choice.getSelectedIndex()){
                case 0:
                    text.setString("lola");
                    break;
                case 1:
                    text.setString("mono");
                    break;
                case 2:
                    text.setString("caso");
                    break;
            }
        }
    }

}



Saludos...
Maty!

Comentarios

  1. Hola. Aplico el codigo pero al ejecutarlo en el emulador no cambia el text con el cambio del choice.

    ResponderBorrar
  2. es raro, este mismo ejemplo me funciona bien en mi emulador,

    te esta tirando algún error?

    has importado las librerías, ya que no están puestas en el código ?

    estas trabajando sobre MIDP 2.0 ?

    ResponderBorrar

Publicar un comentario

Entradas más populares de este blog

Introducción a LWUIT

Buenas, hoy les presentare una libreria para Java ME, que mejora notablemente la interfaz de usuario: Lightweight UI Toolkit Library, mejor dicho LWUIT. Primero para poder utilizar esta librería tendremos que descargarla. Hacer clic aqui para descargar . Una vez descargada y descomprimida, en cualquier lugar. Procedemos a crear un proyecto nuevo en nuestro NetBeans. y Ingresamos a las propiedades haciendo clic derecho sobre el proyecto: Ingresamos a Librerías y Recursos, y hacemos clic en Agregar Jar/Zip: Y buscamos en donde descomprimimos el archivo: LWUIT.jar Hacemos clic en aceptar y ya tendremos disponible la librería para trabajar en nuestro proyecto. Les dejo un pequeño código de muestra para que se fijen si les funciona todo bien: import com.sun.lwuit.Command; import com.sun.lwuit.Display; import com.sun.lwuit.Form; import com.sun.lwuit.Label; import com.sun.lwuit.animations.CommonTransitions; import com.sun.lwuit.layouts.BorderLayout; import javax.microedition.midlet.*; /**  *

GastosMax - Mi Primera Aplicacion Jave ME

Buenas hoy les presentare mi primera aplicación hecha en Java ME, que es soportada para la mayoría de los celulares del mercado. GastosMax es una simple aplicación con la que puedes llevar un simple detalle de todos tus gastos. Tendras un listado de todos tus gastos y el total de todo lo que llevas gastando. Descargar GastosMax v1.0.0 Aceptamos cualquier sugerencia y opiniones para mejorar la aplicación ;). Imágenes:

Instalar eGIT en Eclipse

Ahora les dejo un tutorial para poder usar GIT desde Eclipse. 1- Abrimos Eclipse 2- Hacemos clic en el menu: Help -> Install New Software 3- Hacer clic en el Boton Add, y agregar los Siguientes datos      * Name: eGit      * Location: http://download.eclipse.org/egit/updates 4- Seleccionamos: Eclipse Git Team Provider 5- Aceptan los términos y condiciones. 6- Comenzara a descargar los archivos necesarios y al finalizar les va a pedir reiniciar el Eclipse. Una vez abierto el Eclipse ya pueden usar GIT. Espero que les haya servido. Hasta luego.