1

私は現在データをシリアル化しているショッピングアイテムのリストを保持しているレコード店を持っています

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

次に、このバイト配列は次のようにレコードストアに書き込まれます(各IDの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);
}

問題は、IDを使用してレコードストアをトラバースすることから発生します。これは、削除などによって変更される可能性があるため、無効なIDがスローされ続けるためです。For each ItemObj:Recordstoreを使用できないことはわかっていますが、IDを気にせずにレコードストアをトラバースするにはどうすればよいですか?

4

1 に答える 1

2

電話recordStore.enumerateRecords(null, null, false)

次に、を使用RecordEnumeration.hasNextElement()してRecordEnumeration.nextRecord()

于 2010-04-13T17:12:07.680 に答える