Java Micro Edition (J2ME) - удалить элемент из хранилища записей - PullRequest
1 голос
/ 13 апреля 2010

У меня есть магазин записей, в котором хранится список покупок, которые я в настоящее время сериализирую, например, так:

** (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();

Этот байтовый массив затем записывается в хранилище записей следующим образом (используя цикл for для каждого идентификатора)

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

Проблема связана с использованием идентификатора для перемещения по хранилищу записей, поскольку это может измениться после удаления и т. Д., И поэтому я продолжаю получать неверный идентификатор. Я знаю, что не могу использовать Для каждого ItemObj: Recordstore, так как мне пройти через хранилище записей, не беспокоясь об идентификаторах?

1 Ответ

2 голосов
/ 13 апреля 2010

Звоните recordStore.enumerateRecords(null, null, false)

Затем используйте RecordEnumeration.hasNextElement() и RecordEnumeration.nextRecord()

...