Java Micro Edition (J2ME) - обновление записи с использованием перечисления хранилища записей - PullRequest
0 голосов
/ 14 апреля 2010

У меня есть магазин записей предметов, которые имеют (имя, количество, владелец, статус)

Теперь, когда пользователь запускает событие, я хочу установить статус всех товаров в моем RecordStore с помощью «приобретенного» * ​​1003 *

        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, но, очевидно, это выходит за пределы первого

Надеюсь, вы можете помочь?

1 Ответ

3 голосов
/ 14 апреля 2010

Вы пробовали это?

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