Java Micro Edition (J2ME) - Supprimer élément de Disquaire
Question
J'ai un magasin de disques qui contient une liste des achats articles que je suis sérialisation actuellement les données comme si
** (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 ensuite écrit dans le 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 suppression, etc, et en tant que tel i garder geting id invalide étant jeté. Je sais que je ne peux pas utiliser pour chaque ItemObj: Recordstore alors comment puis-je treverse à travers le magasin de disques sans avoir à se soucier ids
La solution
Appel recordStore.enumerateRecords(null, null, false)
Ensuite, utilisez RecordEnumeration.hasNextElement()
et RecordEnumeration.nextRecord()