2010-01-20 4 views

Répondre

1

Pour le tri dans BlackBerry, vous pouvez utiliser SimpleSortingVector mais mauvaises nouvelles est, SimpleSortingVector n'est pas persistable. Donc, pour trier dans un magasin permanent, vous devez écrire votre propre méthode de tri.

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

maintenant trier le contenu des vecteurs avec n'importe quel algo de tri.

1

Je suppose que vous faites référence au tri des enregistrements qui sont stockés dans le PersistentStore, pas seulement aux objets qui implémentent l'interface Persistable.

Afin de valider vos données au 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(); 

Afin de récupérer le vecteur:

Object contents = po.getContents(); 
if (contents instanceof SimpleSortingVector) 
{ 
    // Cast to a SimpleSortingVector and load your data 
} 

Je crois qu'il ne devrait pas y avoir de problème avec la mise un SimpleSortingVector dans le PersistentStore. Cependant, il mélange la ligne entre le stockage de vos données et son comportement (puisque vous stockez non seulement vos enregistrements de données, mais aussi un comparateur et des informations de tri). Il peut s'agir d'une solution plus simple pour stocker vos enregistrements dans le magasin PersistentStore en tant que vecteur, et lorsque vous le chargez dans le magasin PersistentStore, copiez-le dans un SimpleSortingVector que vous utilisez tout au long de l'exécution de votre application. Si vous avez suivi cette approche, vous pouvez stocker des informations sur le comparateur et les informations de tri dans le vecteur lui-même dans un format spécifié, et l'extraire lorsque vous construisez le SimpleSortingVector.

+0

Salut, Je veux trier les enregistrements de stockage permanent, en mettant en œuvre une requête comme « Sélectionner TimeStamp du tableau où ID = + someID ordre par Date limite desc 0,1 » Comment puis-je commander des documents en magasin et ramasser la dernière date? – iOSDev

+0

Vous pouvez placer tous les enregistrements dans un SimpleSortingVector et implémenter un comparateur à utiliser pour cela. SimpleSortingVector utilisera la méthode de comparaison (Object o1, Object o2) du comparateur pour trier le vecteur (vous pouvez trier par Date). Pour implémenter des requêtes de type SQL plus sophistiquées, vous auriez probablement besoin de quelque chose de plus performant. –

Questions connexes