Blackberryアプリケーションで永続的なストアレコードを並べ替えるのを手伝ってもらえますか?昇順と降順で並べ替えたい...
2 に答える
Persistableインターフェイスを実装するオブジェクトだけでなく、PersistentStoreに格納されているレコードの並べ替えを参照していると想定しています。
データをPersistentStoreにコミットするには:
SimpleSortingVector ssv = new SimpleSortingVector();
// Construct your records and add them to the vector
PersistentObject po = PersistentStore.getPersistentObject(persistentStoreKey);
po.setContents(new ControlledAccess(ssv, codeSigningKey));
po.commit();
ベクトルを取得するには:
Object contents = po.getContents();
if (contents instanceof SimpleSortingVector)
{
// Cast to a SimpleSortingVector and load your data
}
SimpleSortingVectorをPersistentStoreに配置しても問題はないと思います。ただし、データの保存とその動作の境界線は混ざり合っています(データレコードだけでなく、コンパレータと並べ替え情報も保存しているため)。レコードを単なるベクターとしてPersistentStoreに保存し、それをPersistentStoreからロードするときに、アプリの実行中に使用するSimpleSortingVectorにコピーする方がよりクリーンなソリューションになる可能性があります。このアプローチを採用した場合は、コンパレータに関する情報と並べ替え情報を指定された形式でVector自体に格納し、SimpleSortingVectorを作成するときにそれを抽出できます。
ブラックベリーでの並べ替えには、SimpleSortingVector を使用できますが 、残念なことに、SimpleSortingVector は永続化できません。したがって、永続ストアでソートするには、独自のソート方法を作成する必要があります。
Vector info = (Vector) store.getContents();
任意のソート アルゴリズムを使用してベクトルのコンテンツをソートするようになりました。