[RESOLVIDO] List

Ola pessoal!

Estou desenvolvendo uma aplicação JME utilizando RMS, e no momento
em que vou listar os meus registros utilizando o List, eles são exibidos,
porém os valores não são exibidos, somente o marcador.

Ex.:

    • registro1
    • registro2
    • registro3

No dispositivo, é exibido:

Segue o código:

public void inserir( Cliente cliente )
    {
        try
        {
            
            ByteArrayOutputStream bStream = new ByteArrayOutputStream();
            DataOutputStream dStream = new DataOutputStream(bStream);
            dStream.writeUTF(cliente.getNome());
            dStream.flush();

            byte[] dados = bStream.toByteArray();
            bd.addRecord(dados, 0, dados.length);
            bStream.close();
            dStream.close();
            
            display.setCurrent(
                        new Alert("Gravado!", null,
                        null, AlertType.INFO));
           
        }
        catch( Exception e )
        {
            display.setCurrent(
                        new Alert("Erro", null,
                        null, AlertType.INFO));
        }
             
    }

    public Vector listar()
    {
        Vector vetor = new Vector();
        try
        {
            for( int i = 1; i <= bd.getNumRecords(); i++ )
            {
                byte[] b = new byte[bd.getRecordSize(i)];
                int comp = bd.getRecord(i, b, 0);
                Cliente cliente = new Cliente();
                cliente.setNome( new String(b, 0, comp) );
                vetor.addElement( cliente );
            }

            return vetor;
        }
        catch( Exception e )
        {
            e.printStackTrace();
            throw new RuntimeException(e.getMessage());
        }
    }

    public void commandAction(Command c, Displayable d)
    {

         if( c == cm_listar )
         {
             Vector vetor = listar();
             List lista = new List("Listagem", List.EXCLUSIVE);

             for( int i = 0; i < vetor.size(); i++ )
             {
                 Cliente cliente = (Cliente)vetor.elementAt(i);
                 lista.append(cliente.getNome(), null);
             }
             
             Command com = new Command("Voltar", Command.BACK, 1);
             lista.addCommand(com);
             lista.setCommandListener(new Ouvinte(com));
             display.setCurrent(lista);

          }     
     }

Vc está usando o LWUIT?

Tenta colocar o System.out.println, dentro do for que faz a leitura para ver de ele está lendo corretamente

RESOLVIDO!

Realmente estava havendo um problema na leitura.
Estava exibindo dois caracteres em branco, antes de cada registro:

  [][]registro

Para resolver o problema, foi omitido estes dois caracteres:

public Vector listar()
    {
        Vector vetor = new Vector();
        try
        {
            for( int i = 1; i <= bd.getNumRecords(); i++ )
            {
                byte[] b = new byte[bd.getRecordSize(i)];
                int comp = bd.getRecord(i, b, 0);
                Cliente cliente = new Cliente();
                cliente.setNome( new String(b, 0, comp) );
                cliente.setNome(cliente.getNome().substring(2, cliente.getNome().length()));//omiti os 2 primeiros caracteres
                System.out.println(cliente.getNome());
                vetor.addElement( cliente );
            }

            return vetor;
        }
        catch( Exception e )
        {
            e.printStackTrace();
            throw new RuntimeException(e.getMessage());
        }
    }

Valeu pela orientação!

ok…

caso resolveu, coloca RESOLVIDO no Assunto

[]´s