2012-08-01 10 views
5

Voglio creare un singolo cursore che contenga sia nome dato, nome famiglia e numero di telefono. Queste colonne non si trovano insieme in nessuno dei contenitori disponibili in ContattiContract e l'unico modo in cui sono riuscito a ottenere queste informazioni è ottenere prima un cursore per i nomi e quindi ottenere i numeri di telefono creando un cursore separato per ogni contatto. Questa soluzione mi obbliga a leggere i dati in una struttura dati locale invece di usare solo un adattatore sul cursore e impone un sacco di overhead delle prestazioni (circa ~ 5s con ~ 140 contatti con numeri di telefono).Ottenere un cursore SINGOLO con i dettagli completi del nome e numeri di telefono

C'è un modo per creare due cursori e quindi unire le tabelle? O c'è un altro modo? Sono stato alle prese con questa domanda per gli ultimi due giorni e ho letto tutto quello che ho trovato su google, ma in realtà non riesco a far funzionare nulla come voglio io. Questo non può essere davvero impossibile, o è?

Grazie in anticipo!

risposta

0

È possibile ottenere il DISPLAY_NAME e NUMBER da ContactsContract.CommonDataKinds.Phone. Prova questo:

Uri uri = Phone.CONTENT_URI; 
String[] projection = new String[] 
       {Phone.DISPLAY_NAME, Phone.NUMBER, Phone.CONTACT_ID, Phone._ID} 
Cursor contactsCursor = getContentResolver().query(uri, projection, null, null, null); 
Problemi correlati