2012-08-01 6 views
5

के साथ एक सिंगल कर्सर प्राप्त करना मैं एक एकल कर्सर बनाना चाहता हूं जिसमें दिए गए नाम, परिवार का नाम और फोन दोनों शामिल हों। ये कॉलम संपर्क नियंत्रण के तहत उपलब्ध किसी भी कंटेनर में एक साथ स्थित नहीं हैं और एकमात्र तरीका यह है कि मैं यह जानकारी प्राप्त करने में सक्षम हूं, पहले नामों के लिए कर्सर प्राप्त करना और फिर प्रत्येक संपर्क के लिए एक अलग कर्सर बनाकर फोन नंबर प्राप्त करना। यह समाधान मुझे कर्सर पर एडाप्टर का उपयोग करने के बजाय डेटा को स्थानीय डेटा संरचना में पढ़ने के लिए मजबूर करता है और बहुत सारे प्रदर्शन ओवरहेड लगाता है (फोन नंबरों के साथ ~ 140 संपर्कों के साथ ~ 5s)।पूर्ण नाम विवरण और फोन नंबर

क्या दो कर्सर बनाने और फिर टेबल में शामिल होने का कोई तरीका है? या कोई और तरीका है? मैं पिछले दो दिनों से इस प्रश्न के साथ संघर्ष कर रहा हूं और Google पर जो कुछ भी मिला, उसके बारे में पढ़ता हूं, लेकिन वास्तव में कुछ भी काम नहीं कर सकता जैसा मैं चाहता हूं। यह वास्तव में असंभव नहीं हो सकता है, या यह है?

अग्रिम धन्यवाद!

उत्तर

0

आप DISPLAY_NAME और NUMBERContactsContract.CommonDataKinds.Phone से प्राप्त कर सकते हैं। इसे आज़माएं:

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);