Erro RMS j2me
07/09/2009
0
O programa faz uma lista de compras e quando clico em adicionar o item na lista, gostaria q tb gravasse na memoria do celular.
Ele até grava, porém somente uma vez. De inicio ele já dá o erro java.lang.NullPointerException: 0 q vem do metodo leBD(); Depois tentando deletar java.lang.ArrayIndexOutOfBoundsException.
Não estou conseguindo achar erros por isso pesso a ajuda de vcs.
A finalidade é enviar e receber esta lista via bluetooth para j2se. Poderiam me ajudar com alguma dicas?
Se quiser o programa completo só pedir. Obrigado
Abaixo vai o cria , insere , deleta e le. Qualquer erro estou disposto a ouvir pois é minha primeira aplicação.
Ele pega as informações de 3 textField (produto,quantidade,preco) e coloca num list.
Ele até grava, porém somente uma vez. De inicio ele já dá o erro java.lang.NullPointerException: 0 q vem do metodo leBD(); Depois tentando deletar java.lang.ArrayIndexOutOfBoundsException.
Não estou conseguindo achar erros por isso pesso a ajuda de vcs.
A finalidade é enviar e receber esta lista via bluetooth para j2se. Poderiam me ajudar com alguma dicas?
Se quiser o programa completo só pedir. Obrigado
Abaixo vai o cria , insere , deleta e le. Qualquer erro estou disposto a ouvir pois é minha primeira aplicação.
Ele pega as informações de 3 textField (produto,quantidade,preco) e coloca num list.
public void criaBD(){ try{ rslista = RecordStore.openRecordStore("bdlista", true); System.out.println("Nome do Banco "+rslista.getName()+ "\nNúmero de registros = "+rslista.getNumRecords()+ "\nEspaço ocupado = "+rslista.getSize()+ "\nEspaço disponível = "+rslista.getSizeAvailable()); }catch(Exception e){ System.out.println("Não foi possível criar o BD: "+e); } } public void insereDado(){ try{ ByteArrayOutputStream bStream = new ByteArrayOutputStream(); //manipulação byte a byte DataOutputStream dStream = new DataOutputStream(bStream); //fluxo q pega bytes e transforma em dados dStream.writeUTF(textField.getString()); dStream.writeUTF(textField2.getString()); dStream.writeUTF(textField1.getString()); dStream.flush(); //força escrever na memoria byte [] dados = bStream.toByteArray(); //recebe e transforma em array if (flag == true) rslista.addRecord(dados, 0,dados.length); //grava de 0 bytes ate o tamanho total da String else rslista.setRecord(Integer.parseInt(vetRegistro.elementAt(list.getSelectedIndex()).toString()), dados, 0, dados.length); bStream.close(); dStream.close(); }catch(Exception erro){ System.out.println("Erro ao inserir dados. "+erro); } } public void leBD(){ try{ while (list.size() >0){ list.delete(0);} //limpar a lista ByteArrayInputStream iStream = null; DataInputStream diStream = null; relista = rslista.enumerateRecords(null, null, false); //pega os registros do bd (igual ResultSet) int id = 0; byte[] dados = null; vetRegistro.removeAllElements(); while (relista.hasNextElement()){ id = relista.nextRecordId(); //pega a posição dos registros vetRegistro.addElement(""+id); dados = rslista.getRecord(id); iStream = new ByteArrayInputStream(dados); //vai iniciar byte por byte diStream = new DataInputStream(iStream); // pega os bytes do iStream e transforma em dados list.append (diStream.readUTF()+" - ("+diStream.readUTF()+") - R$ "+diStream.readUTF(),null); } iStream.close(); diStream.close(); }catch(IOException erro){ System.out.println("Erro io dados. "+erro); }catch (Exception e){ System.out.println("Erro lendo dados. "+e); } } public void deletar(){ try{ int indice = list.getSelectedIndex(); rslista.deleteRecord(Integer.parseInt(vetRegistro.elementAt(indice).toString())); leBD(); }catch(Exception erro){ System.out.println("Não conseguiu deletar. "+erro); } }
Emersantos
Curtir tópico
+ 0
Responder
Posts
Clique aqui para fazer login e interagir na Comunidade :)