2010-03-21 14 views
1

Je reçois des enregistrements du système en demandant un ContentResolver. Je conserve l'ordre des éléments dans la base de données. Donc, je veux afficher les éléments dans l'ordre de ma base de données.Comment joindre un curseur ContentResolver avec un curseur de base de données?

Comment fusionner ces deux informations?

EDIT 1

Je cherche après une autre façon maintenant. Comme ce que je veux idéalement est:

  • get ordre de contacts par un ordre personnalisé tenu dans ma base de données (ce qui implique de rejoindre CR avec le curseur de la DB, et de faire une commande par, coutures plus tard, il est impossible avec CursorJoiner)
  • mais il y a plus, si la jointure est unique que je veux trier par nom de contact comme dernière mesure

qui est impossible à l'aide du curseur et menuisiers, en raison de la fonctionnalité manquante bys de commande, aussi je dois retourner un curseur, car je vais utiliser le dans une ExpandableList

Aussi cela se traduit par Tsql il ressemblerait

select * from contactsdata 
left join category on contactsdata.catid=category.id 
order by category.pos asc, contact.display_name asc 

Je suis maintenant après une alternative.
Je pense à charger dans une table DB temporaire toutes les données de CR, puis faire la requête sur la table temporaire où je peux joindre des tables et faire des ordres? Comment cela vous semble-t-il?

Répondre

12

Jetez un coup d'œil à CursorJoiner. Si cela ne fonctionne pas, vous pouvez rouler votre propre équivalent avec beaucoup de douleur, de whisky, ou les deux.

+1

On dirait que vous êtes de bonne humeur. :) – yanchenko

+1

Nah, c'est juste le whisky qui parle. :-) Plus sérieusement, j'ai * roulé le mien, et c'est juste un peu de code à porter. C'est certainement faisable, mais pas le genre de chose que vous voulez faire si vous pouvez l'éviter. – CommonsWare

+0

Vérifiez ma modification à la question d'origine, et mon approche pour charger toutes les données CR dans une table temporaire pour exécuter une requête sur elle. – Pentium10