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!
Hola. Aplico el codigo pero al ejecutarlo en el emulador no cambia el text con el cambio del choice.
ResponderSuprimires raro, este mismo ejemplo me funciona bien en mi emulador,
ResponderSuprimirte 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 ?