Kcho choicegroup
KIU:
Soy nuevo en esto del J2ME y tengo un pekeño problema con el ChoiceGroup que no me permite capturar sus datos en ( c==entrar) si lo agrego me manda un null.pointer, pero si no no hay ningun problema. ¿?
public class lectura extends MIDlet implements CommandListener {
static final String BD = "agenda";
RecordStore rs = null;
private conexion conex;
private Command entrar,salir,enviar;
private Display pantalla;
private Form f1;
TextField numero = new TextField("", "",1,1);
private static final String TICKER_TEXT = " DATOS DE MEDICION ";
Image imagen = null;
ImageItem img;
private Form f;
TextField nombre = new TextField("ID_USUARIO", "", 10, TextField.PASSWORD);
String[] zonas = {"Norte","Sur","Este","Oeste"};
ChoiceGroup zona=null;
public lectura() {
super();
try{
imagen = Image.createImage("/mono.png");
}
catch(Exception e){}
img = new ImageItem("", imagen, ImageItem.LAYOUT_CENTER, null);
// Obtenemos el objeto pantalla del midlet.
pantalla = Display.getDisplay(this);
// Creamos el comando Salir.
salir = new Command("Salir", Command.EXIT,2);
entrar = new Command("Entrar", Command.OK,1);
enviar = new Command("Enviar", Command.OK,1);
f = new Form("WECOME TO EMOVIL");
// Añadimos el comando Salir e indicamos que clase lo manejará
ChoiceGroup zona = new ChoiceGroup("ZONAS",List.EXCLUSIVE,zonas,null);
f.append(img);
f.append(nombre);
f.append(zona);
// Añadimos el comando Salir e indicamos que clase lo manejará
f.addCommand(salir);
f.addCommand(entrar);
f.setCommandListener(this);
}
public void startApp() throws MIDletStateChangeException {
// Seleccionamos la pantalla a mostrar
pantalla.setCurrent(f);
}
public void pauseApp() {
}
public void destroyApp(boolean incondicional) {
}
public void commandAction(Command c, Displayable s) {
// Salir
if (c == salir) {
destroyApp(false);
notifyDestroyed();
}
else
if(c==entrar){
String sName=nombre.getString();
int nId=zona.getSelectedIndex(); // ESTE ES EL KCHO
String sId=zona.getString(nId); // CUANDO LO AGREGO ME MANDA UN
System.out.println(sId); // JAVA.NULL.POINTER Y KGUE
try {
rs = RecordStore.openRecordStore(BD, true);
tem fi=new tem(sName); // filtra el dato ingresado
RecordEnumeration re=rs.enumerateRecords(fi,null,false);
if((re.numRecords()>0)&&(sName.length()!=0))
{ Info();
f1.addCommand(salir);
f1.addCommand(enviar);
f1.setCommandListener(this);
pantalla.setCurrent(f1);
// System.out.println("pantron/"+sName+"/encontrado con ");
}
else
System.out.println("no esta el wn");
rs.closeRecordStore();
} catch( RecordStoreException e ){
System.out.println( e );
}
// notifyDestroyed();
}
else if(c==enviar){
TextField tnro = (TextField)numero;
String snro = tnro.getString(); //recoge TxtF_nro
String sNro = snro.trim();
sNro = this.Space(sNro);
if (sNro.length()==0){ //verifica ke el user ingreso el Nro Medidor
Alert alert=new Alert("error","debe ingresar Medidor",null,AlertType.ERROR);
alert.setTimeout(Alert.FOREVER);
pantalla.setCurrent(alert,f1);
}
String sName=nombre.getString();
conex = new conexion (this,sNro);
conex.conectar();
}
}
protected void Info()
{ f1 = new Form("");
Ticker t = new Ticker(TICKER_TEXT);
f1.setTicker(t);
numero.setLabel("Numero Medidor :::");
numero.setConstraints(TextField.ANY);
numero.setMaxSize(25);
f1.append(numero);
}
public String Space(String cadena)
{
cadena = cadena.replace(' ', '/');
return cadena;
}
}
Soy nuevo en esto del J2ME y tengo un pekeño problema con el ChoiceGroup que no me permite capturar sus datos en ( c==entrar) si lo agrego me manda un null.pointer, pero si no no hay ningun problema. ¿?
public class lectura extends MIDlet implements CommandListener {
static final String BD = "agenda";
RecordStore rs = null;
private conexion conex;
private Command entrar,salir,enviar;
private Display pantalla;
private Form f1;
TextField numero = new TextField("", "",1,1);
private static final String TICKER_TEXT = " DATOS DE MEDICION ";
Image imagen = null;
ImageItem img;
private Form f;
TextField nombre = new TextField("ID_USUARIO", "", 10, TextField.PASSWORD);
String[] zonas = {"Norte","Sur","Este","Oeste"};
ChoiceGroup zona=null;
public lectura() {
super();
try{
imagen = Image.createImage("/mono.png");
}
catch(Exception e){}
img = new ImageItem("", imagen, ImageItem.LAYOUT_CENTER, null);
// Obtenemos el objeto pantalla del midlet.
pantalla = Display.getDisplay(this);
// Creamos el comando Salir.
salir = new Command("Salir", Command.EXIT,2);
entrar = new Command("Entrar", Command.OK,1);
enviar = new Command("Enviar", Command.OK,1);
f = new Form("WECOME TO EMOVIL");
// Añadimos el comando Salir e indicamos que clase lo manejará
ChoiceGroup zona = new ChoiceGroup("ZONAS",List.EXCLUSIVE,zonas,null);
f.append(img);
f.append(nombre);
f.append(zona);
// Añadimos el comando Salir e indicamos que clase lo manejará
f.addCommand(salir);
f.addCommand(entrar);
f.setCommandListener(this);
}
public void startApp() throws MIDletStateChangeException {
// Seleccionamos la pantalla a mostrar
pantalla.setCurrent(f);
}
public void pauseApp() {
}
public void destroyApp(boolean incondicional) {
}
public void commandAction(Command c, Displayable s) {
// Salir
if (c == salir) {
destroyApp(false);
notifyDestroyed();
}
else
if(c==entrar){
String sName=nombre.getString();
int nId=zona.getSelectedIndex(); // ESTE ES EL KCHO
String sId=zona.getString(nId); // CUANDO LO AGREGO ME MANDA UN
System.out.println(sId); // JAVA.NULL.POINTER Y KGUE
try {
rs = RecordStore.openRecordStore(BD, true);
tem fi=new tem(sName); // filtra el dato ingresado
RecordEnumeration re=rs.enumerateRecords(fi,null,false);
if((re.numRecords()>0)&&(sName.length()!=0))
{ Info();
f1.addCommand(salir);
f1.addCommand(enviar);
f1.setCommandListener(this);
pantalla.setCurrent(f1);
// System.out.println("pantron/"+sName+"/encontrado con ");
}
else
System.out.println("no esta el wn");
rs.closeRecordStore();
} catch( RecordStoreException e ){
System.out.println( e );
}
// notifyDestroyed();
}
else if(c==enviar){
TextField tnro = (TextField)numero;
String snro = tnro.getString(); //recoge TxtF_nro
String sNro = snro.trim();
sNro = this.Space(sNro);
if (sNro.length()==0){ //verifica ke el user ingreso el Nro Medidor
Alert alert=new Alert("error","debe ingresar Medidor",null,AlertType.ERROR);
alert.setTimeout(Alert.FOREVER);
pantalla.setCurrent(alert,f1);
}
String sName=nombre.getString();
conex = new conexion (this,sNro);
conex.conectar();
}
}
protected void Info()
{ f1 = new Form("");
Ticker t = new Ticker(TICKER_TEXT);
f1.setTicker(t);
numero.setLabel("Numero Medidor :::");
numero.setConstraints(TextField.ANY);
numero.setMaxSize(25);
f1.append(numero);
}
public String Space(String cadena)
{
cadena = cadena.replace(' ', '/');
return cadena;
}
}
