MIDP API не имеет метода для установки идентификатора записи самостоятельно.
См. Документация RecordStore API для объяснения, как это должно работать.
- "Записи однозначно идентифицируются в данном хранилище записей по их recordId, который является целочисленным значением. Этот recordId используется в качестве первичного ключа для записей. Первая запись, созданная в хранилище записей, будет иметь recordId, равный единице.(1). Каждой последующей записи, добавленной в RecordStore, будет присвоен идентификатор записи, который на одну единицу больше, чем запись, добавленная перед ним. То есть, если две записи добавляются в хранилище записей, а первая имеет идентификатор записи, равный 'n',next будет иметь recordId 'n + 1' ... "
Код, который выполняет итерацию хранилища, выглядит нормально:
re = hrs.getRcs().enumerateRecords(null, null, true);
while(re.hasNextElement()) {
int rid = re.nextRecordId();
System.out.println(rid);
}
, если вы получаете только нечетная или четная запись , например, 2-4-6 ... или 1-3-5 ..., напечатанные в результате, первое, что нужно проверить, является ли каким-то образом удаленные записи, которые "отсутствуют" -это можно сделать, например, используя RecordStore.getVersion
мethod:
- "Каждый раз, когда хранилище записей изменяется (методами addRecord, setRecord или deleteRecord), его версия увеличивается.Это может быть использовано мидлетами для быстрого определения того, было ли что-либо изменено ... "