0

Blackberryアプリケーションで永続的なストアレコードを並べ替えるのを手伝ってもらえますか?昇順と降順で並べ替えたい...

4

2 に答える 2

1

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を作成するときにそれを抽出できます。

于 2010-01-20T14:31:04.760 に答える
1

ブラックベリーでの並べ替えには、SimpleSortingVector を使用できます 、残念なことに、SimpleSortingVector は永続化できません。したがって、永続ストアでソートするには、独自のソート方法を作成する必要があります。

Vector info = (Vector) store.getContents();

任意のソート アルゴリズムを使用してベクトルのコンテンツをソートするようになりました。

于 2010-01-20T13:28:08.867 に答える