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