Ir ao conteúdo
  • Cadastre-se

Erro RMS j2me


tecnicosantista

Posts recomendados

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 peço a ajuda de vocês.

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);
}
}

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Curso de Hacker Ético

LANÇAMENTO!

CLIQUE AQUI E CONFIRA!

* Este curso não é ministrado pela equipe do Clube do Hardware.