I have to parse data from my database in an Emulator via J2Me phone so I have a list of information to show in the screen but I got a result -1 for integer fields and Null fo strings, when I display my output it says: java.lang.ArrayIndexOutOfBoundsException: 0, it can never call the first element and this's the code
import Entities.Gerant ;
import Handlers.GerantHandler;
import java.io.DataInputStream;
import javax.microedition.io.Connector;
import javax.microedition.io.HttpConnection;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.List;
import javax.microedition.midlet.*;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
public class ShowMidlet extends MIDlet implements CommandListener, Runnable {
Display disp = Display.getDisplay(this);
Command cmdParse = new Command("Gerants", Command.SCREEN, 0);
Command cmdBack = new Command("Back", Command.BACK, 0);
Gerant[] gerants;
List lst = new List("Gerant", List.IMPLICIT);
Form f = new Form("Accueil");
Form form = new Form("Infos gerants");
Form loadingDialog = new Form("Please Wait");
StringBuffer sb = new StringBuffer();
public void startApp() {
f.append("Click ");
f.addCommand(cmdParse);
f.setCommandListener(this);
lst.setCommandListener(this);
form.addCommand(cmdBack);
form.setCommandListener(this);
disp.setCurrent(f);
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
public void commandAction(Command c, Displayable d) {
if (c == cmdParse) {
disp.setCurrent(form);
Thread th = new Thread(this);
th.start();
}
if (c == List.SELECT_COMMAND) {
form.append("show informations: \n");
form.append(showGerant(lst.getSelectedIndex()));
disp.setCurrent(form);
}
if (c == cmdBack) {
disp.setCurrent(f);
}
}
public void run() {
try {
// this will handle our XML
GerantHandler gerHandler = new GerantHandler();
// get a parser object
SAXParser parser = SAXParserFactory.newInstance().newSAXParser();
// get an InputStream from somewhere (could be HttpConnection, for example)
HttpConnection hc = (HttpConnection)
Connector.open("http://localhost/sprintj2me/getXmlGerantsAttributes.php");
DataInputStream dis = new DataInputStream(hc.openDataInputStream());
parser.parse(dis, gerHandler);
// display the result
gerants = gerHandler.getGerant();
if (gerants.length > 0) {
for (int i = 0; i < gerants.length; i++) {
lst.append(gerants[i].getIdCompte()+" "
+gerants[i].getLogin()+" "
+gerants[i].getMotDePasse()+" "
+gerants[i].getNom()+" "
+gerants[i].getPrenom()+" "
+gerants[i].getEmail()+" "
+gerants[i].getDateNaissance()+" "
+gerants[i].getAdresse()+" "
+gerants[i].getNumeroTelephone(), null);
}
}
} catch (Exception e) {
System.out.println("Exception:" + e.toString());
}
disp.setCurrent(lst);
}
private String showGerant(int i) {
String res = "";
if (gerants.length > 0) {
sb.append("* ");
sb.append(gerants[i].getIdCompte());
sb.append("\n");
sb.append("* ");
sb.append(gerants[i].getLogin());
sb.append("\n");
sb.append("* ");
sb.append(gerants[i].getMotDePasse());
sb.append("\n");
sb.append("* ");
sb.append(gerants[i].getNom());
sb.append("\n");
sb.append("* ");
sb.append(gerants[i].getPrenom());
sb.append("\n");
sb.append("* ");
sb.append(gerants[i].getEmail());
sb.append("\n");
sb.append("* ");
sb.append(gerants[i].getDateNaissance());
sb.append("\n");
sb.append("* ");
sb.append(gerants[i].getAdresse());
sb.append("\n");
sb.append("* ");
sb.append(gerants[i].getNumeroTelephone());
sb.append("\n");
}
res = sb.toString();
sb = new StringBuffer("");
return res;
}
}
Aucun commentaire:
Enregistrer un commentaire