我在我的 j2me 应用程序中使用 rms 概念。
第一条记录成功添加到 rms,然后读取记录也很好,但是当我要同时添加另一条记录时,它不会添加到我的列表中,它已成功添加到 rms 但当时没有刷新。
如果我退出应用程序一次然后运行记录读取良好的应用程序,所有记录都会显示。如何刷新列表并获取所有记录?
这是我添加记录的来源:
public void AddCustomer(String str) throws RecordStoreNotOpenException
{
byte[] rec=str.getBytes();
try
{
rs19 = RecordStore.openRecordStore(ADDREMOVE_CUSTOMER, true);
rs19.addRecord(rec, 0, rec.length);
System.out.println("REcord added successfully");
v.addElement(str);
}
catch (Exception e)
{
}
}
这是读取记录的来源:
public ChoiceGroup getChoiceGroup10() {
if (choiceGroup10 == null) {
choiceGroup10 = new ChoiceGroup("Select Customer", Choice.POPUP);
choiceGroup10.append("none", null);
try
{
rs19.openRecordStore(ADDREMOVE_CUSTOMER, true);
String value="";
String comma=",";
Vector v1=new Vector();
StringBuffer enumList=new StringBuffer();
recEnum = rs19.enumerateRecords( null, null, false );
while( recEnum.hasNextElement() )
{
byte[] data = recEnum.nextRecord();
enumList.append(new String(data));
enumList.append(",");
}
records=new String(enumList);
int index=records.indexOf(comma);
while(index>=0)
{
v1.addElement(records.substring(0,index));
records = records.substring(index+comma.length());
index = records.indexOf(comma);
}
v1.addElement( records );
if( v1.size()>0 )
{
for(int i=0; i<v1.size(); i++)
{
value= (String)v1.elementAt(i);
choiceGroup10.append(value, null);
}
}
}
catch(InvalidRecordIDException ie)
{
ie.printStackTrace();
}
catch(RecordStoreException re)
{
re.printStackTrace();
}
catch(NullPointerException ne)
{
System.out.println(ne);
}
finally
{
try {
rs19.closeRecordStore();
} catch (RecordStoreException ex) {
ex.printStackTrace();
}
}
}
return choiceGroup10;
}