2010-04-13 3 views
0

J'ai un magasin de disques d'articles qui ont (nom, quantité, propriétaire, état)Java Micro Edition (J2ME) - Enregistrement de mise à jour en utilisant l'énumération disquaire

Maintenant, lorsque l'utilisateur déclenche un événement que je veux définir l'état de tous les articles dans mon RecordStore avec « acheté »

 re = shoppingListStore.enumerateRecords(null, null, false); 

     while (re.hasNextElement()) 
     { 
      // read current values of item 
      byte [] itemRecord = re.nextRecord(); 
      // deserialise byte array 
      newItemObject.fromByteArray(itemRecord); 
      // set item status to purchased 
      newItemObject.setItemStatus("Purchased"); 
      // create new bytearray and call newitemobject . tobytearray 
      // method to return a byte array of the objects 
      // (using UTF8 encoded strings~) 
      byte[] itemData = newItemObject.toByteArray(); 

      // add new byte array to shoppinglist store 

      shoppingListStore.setRecord(re.nextRecordId(), itemData, 0, itemData.length); 
     } 

Cependant, je suis en remplacant enregistrement suivant (en utilisant le nextRecordId). J'ai essayé d'employer nextRecordId - 1 mais évidemment ceci est hors des limites sur le premier

J'espère que vous pouvez aider?

Répondre

3

Avez-vous essayé?

re = shoppingListStore.enumerateRecords(null, null, false); 

while (re.hasNextElement()) 
{ 
    int id = re.nextRecordId(); 
    // read current values of item 
    byte [] itemRecord = shoppingListStore.getRecord(id); 
    // deserialise byte array 
    newItemObject.fromByteArray(itemRecord); 
    // set item status to purchased 
    newItemObject.setItemStatus("Purchased"); 
    // create new bytearray and call newitemobject . tobytearray method to return a byte array of the object (using UTF8 encoded strings~) 
    byte[] itemData = newItemObject.toByteArray(); 

    // update shoppinglist store record with new byte array 
    shoppingListStore.setRecord(id, itemData, 0, itemData.length); 
} 
+0

Juste essayé le code ci-dessus, si vous ammend l're.getRecord (id) et faire recordStoreName.getRecord (id), il fonctionne un régal :) merci (modifier votre code et je vais coutil votre réponse) merci – Garbit

+0

droite, j'ai mis à jour le poste –

Questions connexes