Java me 如何在J2ME中自行设置记录id

Java me 如何在J2ME中自行设置记录id,java-me,midp,rms,Java Me,Midp,Rms,我使用RecordStore存储数据 我知道当我们将数据存储在RecordStore中时,它会自动为每个记录生成一个记录id 但是我怎样才能自己设置记录id呢?或者如何获取记录id 因为我想使用recordstore.setRecord(..)方法更新我的recordstore 但是当我使用RecordEnumeration获取RecordStore并使用方法nextRecordId()时,它只显示奇数或偶数ID。我的意思是当我有8张唱片时,它只打印出奇数或偶数的唱片,就像 2 4 6 8 我的

我使用
RecordStore
存储数据

我知道当我们将数据存储在
RecordStore
中时,它会自动为每个记录生成一个记录id

但是我怎样才能自己设置记录id呢?或者如何获取记录id

因为我想使用
recordstore.setRecord(..)
方法更新我的recordstore

但是当我使用
RecordEnumeration
获取
RecordStore
并使用方法
nextRecordId()
时,它只显示奇数或偶数ID。我的意思是当我有8张唱片时,它只打印出奇数或偶数的唱片,就像

2 4 6 8

我的代码:

    handleRecord.openRecordStore(handleRecord.getRecordName());
    RecordEnumeration re;
    try {
         int rc = handleRecord.getRecordStore().getNumRecords();
         re = hrs.getRcs().enumerateRecords(null, null, true);

         while(re.hasNextElement()) {
             int rid = re.nextRecordId();
             System.out.println(rid);
         }
    } catch(Exception e) {
        System.out.println(e.toString());
    }

MIDPAPI没有自己设置记录id的方法

请参阅,以了解如何工作

  • 记录在给定的记录存储中由其recordId唯一标识,recordId是一个整数值。此recordId用作记录的主键。在记录存储中创建的第一条记录的recordId将等于一(1)。添加到记录存储的每个后续记录都将分配一个比之前添加的记录大一的记录ID。也就是说,如果将两个记录添加到一个记录存储,并且第一个记录的记录ID为“n”,则下一个记录的记录ID为“n+1”…”
迭代存储的代码显示为OK:

     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
方法来完成:

  • 每次(通过addRecord、setRecord或deleteRecord方法)修改记录存储时,其版本都会增加。MIDlet可以使用此功能快速判断是否有任何内容被修改

从您描述的内容来看,似乎您在循环跳过记录时出现了一个简单的错误。请显示用于迭代
RecordEnumeration