Ola pessoal, tudo bom
Estou com uma duvida em J2ME, estou tentando criar o comando alterar em RMS na minha aplicação, só que não to conseguindo pegar as informação do cadastro que pesquisei para aparecer na tela e depois salva-lo.
Abaixo segue o código para analise, será que tenho que criar get and set para cada campo txt???
Muito obrigado!
[code]public class Livraria extends MIDlet implements CommandListener {
…
private Command cmdAlterar; //Botão para alterar o cadastro
private Command cmdAlterarOK;
private RecordStore rs; // Objeto para manipulação do Record Store
public LivrariaMobile() throws RecordStoreNotFoundException, RecordStoreFullException, RecordStoreException {
// Abre o Record Store chamado "Livros"
rs = RecordStore.openRecordStore("Livros", true);
}
…
public void commandAction(Command cmd, Displayable disp) {
…
// Commando Alterar
else if (cmd == cmdAlterar) {
alterarTela();
}
else if (cmd == cmdAlterarOK){
try {
alterarLivro();
} catch (RecordStoreException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
…
}
…
private void alterarTela() {
Form form = new Form("Alterar Livro");
txtTitulo = new TextField("Titulo", "", 30, TextField.ANY);
txtAutor = new TextField("Autor", "", 30, TextField.ANY);
txtEditora = new TextField("Editora", "", 30, TextField.ANY);
txtData = new TextField("Data de aquisição", "", 30, TextField.ANY);
txtPreco = new TextField("Preço", "", 30, TextField.ANY);
cmdAlterarOK = new Command("Alterar", Command.SCREEN, 1);
cmdVoltar = new Command("Voltar", Command.SCREEN, 1);
form.append(txtTitulo);
form.append(txtAutor);
form.append(txtEditora);
form.append(txtData);
form.append(txtPreco);
form.addCommand(cmdAlterarOK);
form.addCommand(cmdVoltar);
form.setCommandListener(this);
display = Display.getDisplay(this);
display.setCurrent(form);
}
…
// Método responsável por alterar um livro do catálogo
private void alterarLivro() throws RecordStoreException {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(baos);
try {
dos.writeUTF(txtTitulo.toString());
dos.writeUTF(txtAutor.toString());
dos.writeUTF(txtEditora.toString());
dos.writeUTF(txtData.toString());
dos.writeUTF(txtPreco.toString());
} catch (IOException e) {
e.printStackTrace();
}
// Atualiza os dados convertendo-os para array de bytes
rs.setRecord(0, baos.toByteArray(), 0, baos.toByteArray().length);
showMessage("Cadastro atualizado com sucesso!");
}
…
}[/code]