2010-04-13 63 views
0

我有有項目(名稱,數量,所有者,狀態)的唱片店的Java微型版(J2ME) - 更新記錄使用的RecordStore枚舉

現在,當用戶觸發一個事件我想設置的狀態在我的RecordStore中的所有項目以「購買」

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

但是我覆蓋下一個記錄(使用nextRecordId)。我試過使用nextRecordId - 1,但顯然這是第一個出界

希望你能幫忙嗎?

回答

3

你試過嗎?

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

剛試過上面的代碼,如果你ammend的re.getRecord(ID)和做recordStoreName.getRecord(ID),那麼它的工作原理治療:)謝謝(編輯你的代碼,我會剔你的答案)謝謝 – Garbit 2010-04-13 20:23:57

+0

對,我更新了帖子 – 2010-04-13 20:49:48