Ver Mensaje Individual
  #3 (permalink)  
Antiguo 19/10/2011, 10:10
GUILLHERMOSOFT
 
Fecha de Ingreso: marzo-2009
Ubicación: Cali (Valle) - Colombia
Mensajes: 164
Antigüedad: 15 años, 2 meses
Puntos: 2
De acuerdo Respuesta: Duda Lista Dependiente Midlet (JME)

Hola sneyder05, muchas gracias por tu respuesta, me fue de gran ayuda, más vale la pena aclarar que "ItemStateListener" es una interfaz, por lo cual no se extiende sino que se implementa, así mismo tiene el método abstracto "itemStateChanged", mi código quedó así:


/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package hello;

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

/**
* @author Luis Guillermo Trejo
*/
public class automovil extends MIDlet implements /*CommandListener,*/ ItemStateListener {

private Display display;
private Form formIndex;

private Command cMExit;
private ChoiceGroup marca;
//private List marca;
private ChoiceGroup modelosChevrolet;
private ChoiceGroup modelosMazda;
private ChoiceGroup modelosRenault;
private ChoiceGroup modelosBMW;
private ChoiceGroup modelosDaewoo;

public void startApp() {
display = Display.getDisplay(this);
getFormIndex();
}

public void pauseApp() {
}

public void destroyApp(boolean unconditional) {
}

public void getFormIndex() {
formIndex = new Form("Calculadora");

cMExit = new Command("Salir", Command.EXIT, 1);

String[] marcasAutomoviles = {"","Chevrolet","Mazda","Renault","BMW","Daewoo "};
marca = new ChoiceGroup("Marca", Choice.POPUP, marcasAutomoviles, null);
//marca = new List("Marca", List.EXCLUSIVE, marcasAutomoviles, null);

String[] marcaChevrolet = {"Aveo","Cruze","Optra"};
modelosChevrolet = new ChoiceGroup("Marca Chevrolet", Choice.POPUP, marcaChevrolet, null);

String[] marcaMazda = {"Allegro","3","6"};
modelosMazda = new ChoiceGroup("Marca Mazda", Choice.POPUP, marcaMazda, null);

String[] marcaRenault = {"Megane","Logan","Clio"};
modelosRenault = new ChoiceGroup("Marca Renault", Choice.POPUP, marcaRenault, null);

String[] marcaBMW = {"2009","2010","2011"};
modelosBMW = new ChoiceGroup("Marca BMW", Choice.POPUP, marcaBMW, null);

String[] marcaDaewoo = {"Cielo","Matiz","2014"};
modelosDaewoo = new ChoiceGroup("Marca Daewoo", Choice.POPUP, marcaDaewoo, null);

formIndex.append(marca);

formIndex.addCommand(cMExit);

display.setCurrent(formIndex);
//formIndex.setCommandListener(this);
formIndex.setItemStateListener(this);
}

/*public void commandAction(Command c, Displayable d) {

String marcaSeleccionada = marca.getString(marca.getSelectedIndex());

if (c == cMExit) {
destroyApp(true);
notifyDestroyed();
} else if (marcaSeleccionada.equals("Chevrolet")) {
formIndex.append(modelosChevrolet);
}
}*/

public void itemStateChanged(Item item) {
//throw new UnsupportedOperationException("Not supported yet.");
//if(item == marca){
if (marca.getString(marca.getSelectedIndex()).equals( "Chevrolet")) {
//formIndex.delete(1);
formIndex.append(modelosChevrolet);
} else if (marca.getString(marca.getSelectedIndex()).equals( "Mazda")) {
formIndex.delete(1);
formIndex.append(modelosMazda);
} else if (marca.getString(marca.getSelectedIndex()).equals( "Renault")) {
formIndex.delete(1);
formIndex.append(modelosRenault);
} else if (marca.getString(marca.getSelectedIndex()).equals( "BMW")) {
formIndex.delete(1);
formIndex.append(modelosBMW);
} else if (marca.getString(marca.getSelectedIndex()).equals( "Daewoo")) {
formIndex.delete(1);
formIndex.append(modelosDaewoo);
}
//}
}
}


Más ahora cuento con un pequeño inconveniente, si descomento la línea "//formIndex.delete(1);", la aplicación no me funciona y como está actualmente solo funciona si comienzo seleccionando la marca "Chevrolet", más si comienzo seleccionando otra no funciona, por lo cual necesito alguna manera de comprobar la existencia del item 1 y con base en esto generar la respectiva condición en cada "formIndex.delete(1);". Ya he Googleado un poco, más aún no hallo un método ó funcionalidad que me pueda ayudar con esto, por lo cual agradecería tu ayuda.

Quedo atento a tus comentarios.

Muchas gracias.