0

您能帮我对黑莓应用程序中的持久存储记录进行排序吗?我想按升序和降序对其进行排序...

4

2 回答 2

1

我假设您指的是存储在 PersistentStore 中的排序记录,而不仅仅是实现 Persistable 接口的对象。

为了将您的数据提交到 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 中应该没有任何问题。但是,它确实融合了数据存储与其行为之间的界限(因为您不仅要存储数据记录,还要存储比较器和排序信息)。将您的记录作为 Vector 存储在 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 回答