我想在每次使用此代码时从RecordStore中删除一条记录,这意味着第二次用户看到记录时他不应该看到已删除的记录,但这种情况不会发生。
在我的代码上测试了recordStore上创建的相同记录。 !
这些是我输入的记录。
_1_Elhadi_ _Sun Jan 26 01:00:00 GMT + 03:00 2014
_A_John_ Sun 1月26日01:00:00 GMT + 03:00 2014
_3_Smith_ Sun 1月26日01:00:00 GMT + 03:00 2014
public void deleteRecStore(String recID) {
try
{
recordStore.openRecordStore("recordStore", true) ;
}
catch(Exception ex)
{
ex.printStackTrace();
}
try
{
RecordEnumeration e = recordStore.enumerateRecords(null,null,false);
int found = -1;
while (e.hasNextElement())
{
int id = e.nextRecordId();
String next = new String(e.toString());
int fee = next.indexOf("_", 1);
**// These statements don't print anything**
System.out.print("next.indexOf" +next.indexOf("_", 1));
System.out.println( "next.substring(1, fee)"+"\t" +next.substring(fee, 1));
System.out.println("recID"+"\t"+recID);
if (next.substring(1, fee).equals(recID))
{
found = id ;
}
}
if (found == -1)
{
System.out.println("not found!");
}
else
{
recordStore.deleteRecord(found);
}
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
答案 0 :(得分:0)
我认为错误是这一行:
String next = new String(e.toString());
看起来您正在将RecordEnumeration对象转换为String对象,并尝试在该字符串中查找记录ID。这不会让你走得太远。
尝试用此行替换该行,看看是否有帮助:
String next = new String(recordStore.getRecord(id));