2010-11-08 6 views
2

Je suis en mesure de récupérer le nom du contact et le téléphone, mais comment récupérer la photo de contact dans une requête?Comment lier nom de contact, téléphone et photo de contact dans SimpleCursorAdapter?

String[] PROJECTION = new String[] { Contacts.People._ID, Contacts.PeopleColumns.NAME, Contacts.Phones.NUMBER }; 
    Cursor c = a.managedQuery(Contacts.People.CONTENT_URI, PROJECTION, null, null, Contacts.People.DEFAULT_SORT_ORDER); 

    return (new SimpleCursorAdapter(a, 
      R.layout.list_row, 
      c, 
      new String[] { Contacts.PeopleColumns.NAME, Contacts.Phones.NUMBER }, 
      new int[] { R.id.toptext, R.id.bottomtext })); 

Répondre

1

Je suis dans le même bateau (et pour Android-3 via Android-5 pour démarrer)!

Je ne vois pas une colonne pour une photo dans les deux 1.x ou 2.x, donc je suis à peu près résigné à l'aide d'un CursorAdapter avec un porteur de fortune Voir (classe privée, affecté à la anon étiquette de vue) pour une bonne mesure, puis en utilisant loadContactPhoto en bindView selon les besoins.

L'astuce, il semble être d'éviter l'échelle excessive/excès (par exemple, mettre en cache les résultats de Bitmap.createScaledBitmap pour chaque photo, à tout le moins?), De peur que la vue ralentit à nouveau et vous perdez les avantages d'avoir une liste axée sur le curseur en premier lieu.

Je sais, je me salis. Je suis sûr que il doit y avoir un meilleur moyen! Eh bien, j'ai bon espoir. :)

Questions connexes