7

我有一個遊標檢索應用程序中有街道地址的所有聯繫人。這個遊標然後被傳遞給一個適配器。到現在爲止還挺好。除了我還收到一大堆低價值的聯繫人(大部分來自Skype),只有國家/國家信息。有沒有簡單的方法來修改URI來跳過這些?Android - 獲取聯繫人列表與街道地址,但沒有低價值的像Skype這樣的地址只是一個城市和州

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

這只是SQL,所以指定從儘可能多的領域ContactsContract.CommonDataKinds.StructuredPostal,以及他們的任何條件,你想要的。

+0

完美。像魅力一樣工作。 – Pyro979

相關問題