我对RMS有一个问题,我需要的是删除一个记录,并在水平上升后移动记录,有没有机会这样做呢?我曾试图避免这种情况,但总之,我最终得到的结果是:
是否有任何方法可以将其转换为:
public void profilRmsPopulator(Form fr, ChoiceGroup hg) throws RecordStoreNotOpenException, RecordStoreException{
int spacePos=0;
for (int i =1; i<=rs.getNumRecords();i++){
System.out.println("for loop\n");
spacePos=RmsToStringDumper(i).indexOf(" ");
System.out.println("spacePos: \n" +spacePos);
hg.append(RmsToStringDumper(i).substring(0, spacePos),null);
}
fr.append(hg);
}同时(recordEnumeration.hasNextElement())?当然,用这个字符串修整:P
好吧,也许我该解释一下我现在所遭受的问题。我已经在手机上创建了一个应用程序,到目前为止,它正在创建用户配置文件并在RMS中编写它,而且它运行得很好。该算法的工作原理如下:用户被要求提供配置文件的名称和其他一些细节,当他/她完成时,数据就会被保存。记录的模式如下所示: name_of_profile、模型、品牌等等。程序对记录进行裁剪以获得Name_of_profile,并将其放入choiceGroup中。它也像一种魅力,但真正的问题是删除,我可以删除第一或第二记录,但当我添加一个新的配置文件,我收到这样的错误:
javax.microedition.rms.InvalidRecordIDException:错误查找记录
发布于 2010-12-23 17:28:11
我想您的意思是您需要“重新编号”记录ids,这样删除所创建的空白就不存在了,并且您有一系列整洁的ids,从1到n,记录的数量不等。
您可以这样做,但这将是昂贵的-没有“更新”的记录,只有添加/插入/删除操作。因此,您需要遍历所有记录,读取它们,删除它们,并使用修改后的id将它们写回。按正确的顺序应用更改可能也很棘手。
你为什么要消除这些空白?您可以使用RecordEnumeration方法返回的RecordStore enumerateRecords方法来迭代完整的集合,“跳过”空白。或者,您可以使用getRecordIDs方法获得当前一组ids的数组。在这两种情况下,您都可以迭代而不会看到空白。
https://stackoverflow.com/questions/4520931
复制相似问题