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)?