7

मुझे एक कर्सर मिला है जिसमें ऐप पर सभी संपर्क पुनर्प्राप्त किए गए हैं जिनके पास सड़क का पता है। यह कर्सर तब एडाप्टर में पास हो जाता है। अब तक सब ठीक है। सिवाय मुझे कम मूल्य वाले संपर्कों का एक गुच्छा भी मिलता है (ज्यादातर स्काइप से) जिसमें केवल राज्य/देश की जानकारी होती है। क्या उन लोगों को छोड़ने के लिए यूआरआई को संशोधित करने का कोई आसान तरीका है?एंड्रॉइड - सड़क पते के साथ संपर्क सूची प्राप्त करना लेकिन स्काइप जैसे कम मूल्य वाले लोग जहां पता केवल एक शहर है और राज्य

public Cursor getDirectoryList (CharSequence constraint) { 

     String[] selectionArguments = { "%"+constraint.toString()+"%" }; 
     String selection = ContactsContract.CommonDataKinds.StructuredPostal.DISPLAY_NAME + " like ?"; 

     Uri uri = ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_URI; 
     String sortOrder = ContactsContract.CommonDataKinds.StructuredPostal.DISPLAY_NAME + " COLLATE LOCALIZED ASC"; 
     Cursor cr = getContentResolver().query(uri, null, selection, selectionArguments, sortOrder); 

     return cr; 
    } 

उत्तर

4

आप संशोधित कर सकते हैं selection और/या selectionArgs इस तरह सुनिश्चित करना है कि स्ट्रीट फ़ील्ड रिक्त नहीं है के रूप में अधिक मापदंडों, निर्दिष्ट करने के लिए:

String selection = 
    ContactsContract.CommonDataKinds.StructuredPostal.DISPLAY_NAME + " like ? AND " + 
    ContactsContract.CommonDataKinds.StructuredPostal.STREET + " IS NOT NULL"; 

यह सिर्फ एसक्यूएल, इसलिए से कई क्षेत्रों को निर्दिष्ट किया जाता है ContactsContract.CommonDataKinds.StructuredPostal, और उन पर जो भी शर्तें, आप चाहते हैं।

+0

बिल्कुल सही। एक जादू की तरह काम किया। – Pyro979

संबंधित मुद्दे