2010-04-13 33 views
1

J'ai un disquaire qui contient une liste d'articles commerciaux je suis sérialisation actuellement les données comme siJava Micro Edition (J2ME) - Supprimer l'élément de Disquaire

** (inside) ItemClass **    
ByteArrayOutputStream byteOutputStream = new ByteArrayOutputStream(); 
DataOutputStream dataOutputStream = new DataOutputStream(byteOutputStream); 

dataOutputStream.writeUTF(getOwner()); 
dataOutputStream.writeUTF(getItemName()); 
dataOutputStream.writeInt(getQuantity()); 

dataOutputStream.close(); 

return byteOutputStream.toByteArray(); 

Ce tableau d'octets est écrit alors à la magasin de disques comme si (en utilisant pour la boucle pour chaque id)

for (int i = 1; i <= shoppingListStore.getNumRecords(); i++) 
{ 
    byte[] itemRecord = shoppingListStore.getRecord(i); 
    newItemObject.fromByteArray(itemRecord); 
    userShoppingList.append(newItemObject.getItemName() + " " + newItemObject.getQuantity() + " " + newItemObject.getOwner(), null); 
} 

le problème vient d'utiliser l'ID de treverse par le magasin de disques, car cela pourrait changer de etc suppression et en tant que tel i garder geting id invalide étant jeté. Je sais que je ne peux pas utiliser Pour chaque ItemObj: Recordstore, comment puis-je traverser le magasin de disques sans avoir à me soucier des identifiants?

Répondre

2

Appel recordStore.enumerateRecords(null, null, false)

Ensuite, utilisez RecordEnumeration.hasNextElement() et RecordEnumeration.nextRecord()

+0

merci beaucoup :) – Garbit