Dúvida: Alterar Cadastro J2ME + RMS

0 respostas
M

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!

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

...

}
Criado 15 de maio de 2009
Respostas 0
Participantes 1