Aller au contenu

Requête sur plusieurs tables


Recommended Posts

Posté(e)

Bonjour,

Voulant développer sous android, je crée actuellement une petite application pour me faire la main ( un gestionnaire d'appel)

J'arrive donc à afficher la liste des appels ( Nom de la personne s'il est connu sinon le numéro ). Par contre je ne comprend pas comment récupérer la photo lié au nom. Est-il possible de faire des jointures sur les tables ou existe t-il un autre moyen ?

Voici mon cursor pour les appels.

private void  getCall() {
       call = new ArrayList();
       Uri uri = Calls.CONTENT_URI;
       String[] projection = new String[] {Calls._ID,Calls.NUMBER,Calls.TYPE , Calls.CACHED_NAME,Calls.DATE};
       Cursor cur = managedQuery(uri, projection, null, null, Calls.DATE + " DESC");
       this.startManagingCursor(cur);
       if (cur.moveToFirst()) {
           do {

               String number = cur.getString(cur.getColumnIndex(Calls.NUMBER));
               String type = cur.getString(cur.getColumnIndex(Calls.TYPE));
               String name =cur.getString(cur.getColumnIndex(Calls.CACHED_NAME));
               call.add(new Call(number, type, name));
           } while (cur.moveToNext());
       }
   }

Merci.

Posté(e)

Tout d'abord merci pour la réponse.

Mais en fait ce que je ne comprend pas c'est comment faire la liaison entre deux tables/providers.

Exemple pour moi entre le provider Calls et le provider ContactContracts.

Posté(e)

Oui je sais comment faire des jointures sur des requêtes SQL. Mon problème c'est de joindre deux providers ( et donc deux cursor ).

Je voudrais joindre le providers Calls avec le Provider Contacts en utilisant par exemple le nom de la personne. J'ai trouvé l'élément CursorJoiner dans la doc mais il est dit que le champs qui doit joindre les deux Cursor doit être unique, or je ne pense pas que le nom de la personne soit unique.

Après peut-être qu'effectivement on peut faire des requêtes directement en SQL en utilisant le providers ??

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...