1

j2me アプリのすべてのレコードストアを反復処理するにはどうすればよいですか?

レコードストアは、ユーザーがデータを入力するときに作成されます。そのため、レコードストアの数は私の管理下にありません。

アプリは、j2me アプリに関連付けられたすべてのレコードストアを追跡しますか? または、他のすべてのレコードストアの名前を含むレコードストアを作成する必要がありますか?

を使用して、レコードストアからすべての行を取得できます

for(int i=1;i<=getnumrecords(RecordStoreName);i++)
RecordStoreName.getrecord(i);

しかし、アプリに関連付けられているすべてのレコードストア名を取得するための機能を探しています。

1 つのレコードストアに新しい行を作成するのではなく、新しいレコードストアを作成する理由は、java me のレコードストアのサイズが電話によって制限されているためです。

そこで、フォームから取得するすべてのデータに対して新しい recordStore を作成することにしました。

4

2 に答える 2

2

ユーザーがエントリを削除できる場合、への呼び出しがRecordStore原因でループが中断される可能性があります。 レコードを反復するためのより安全な方法は、次を使用することです。InvalidRecordIDExceptiongetRecord
RecordEnumeration

RecordEnumeration re = RecordStoreName.enumerateRecords(null, null, false);

while (re.hasNextElement()) {
    RecordStoreName.getrecord(re.nextRecordId());
}

コメント後に更新

staticメソッドを使用できますlistRecordStores。APIによると:

MIDlet スイートが所有するレコード ストアの名前の配列を返します。MIDlet スイートにレコード ストアがない場合、この関数は null を返すことに注意してください。返される RecordStore 名の順序は実装に依存します。

于 2012-10-18T12:14:05.103 に答える
1

この機能は、RecordStore.listRecordStoresAPIを使用してアプリケーション開発者に提供されます。

MIDletスイートが所有するレコードストアの名前の配列を返します。MIDletスイートにレコードストアがない場合、この関数はnullを返すことに注意してください。返されるRecordStore名の順序は、実装によって異なります。

于 2012-10-18T13:59:11.747 に答える