Java me j2me从记录存储中删除记录

Java me j2me从记录存储中删除记录,java-me,rms,recordstore,Java Me,Rms,Recordstore,问题: 无法正确使用deleteRecord() 背景: 我有一个简单的j2me应用程序,我在其中向记录存储添加各种字符串,并尝试操作记录存储的内容。我在一个屏幕上添加记录,然后在另一个屏幕上读取它们。我可以用这些屏幕来回移动 问题详细描述: 例如,我添加了“abc”(记录id为1)、“def”(id为2)和“ghi”(id为3)。 当我按顺序删除这些记录时,rs.deleteRecord(3)、rs.deleteRecord(2)、rs.deleteRecord(1)一切正常 当我尝试任何其他

问题: 无法正确使用
deleteRecord()

背景: 我有一个简单的j2me应用程序,我在其中向记录存储添加各种字符串,并尝试操作记录存储的内容。我在一个屏幕上添加记录,然后在另一个屏幕上读取它们。我可以用这些屏幕来回移动

问题详细描述: 例如,我添加了“abc”(记录id为1)、“def”(id为2)和“ghi”(id为3)。 当我按顺序删除这些记录时,
rs.deleteRecord(3)、rs.deleteRecord(2)、rs.deleteRecord(1)
一切正常

当我尝试任何其他订单时,我得到了“Msg:javax.microedition.rms.InvalidRecordIDException” 此外,当我尝试读取此删除后的其他记录时,没有输出

我希望能够以任何顺序删除记录


提前感谢

打开
RecordStore
该名称是rs。。。 然后

RecordEnumeration re=null;
try {
  re = rs.enumerateRecords(null, null, true);
} catch (RecordStoreNotOpenException ex) {
  ex.printStackTrace();
}

int rid=0;

try {
  while (re.hasNextElement()) {
    rid=re.nextRecordId();
    try {
      rs.deleteRecord(rid);
    } catch (RecordStoreNotOpenException ex) {
      ex.printStackTrace();
    } catch (InvalidRecordIDException ex) {
      ex.printStackTrace();
    } catch (RecordStoreException ex) {
      ex.printStackTrace();
    }
  }
} catch (InvalidRecordIDException ex) {
  ex.printStackTrace();
}

我也面临同样的问题。但是在仔细阅读了api类和这个方法之后,我发现在解释中写了一行“记录被从记录存储中删除。这个记录的recordId不被重用。” 因此,在recordstore中不可能在同一记录编号处更新和添加特定数据! 因此,您要么需要使用记录枚举技术,要么使用一个包含要存储的必需字段的类,将其转换为ByteArray,然后将ByteArray存储在记录存储中。 希望这能帮助你和其他人。

我读对了,这样就不会发生这种情况。您是否在每次调用
deleteRecord()
后尝试枚举记录,以查看剩下哪些记录(内容和id)?