2011-09-16 45 views
0

我想要查詢聯繫人數據並使用以下條件檢索聯繫人姓名和電話號碼:如果聯繫人有移動號碼,請選擇該號碼,否則選擇任意號碼/第一個號碼該聯繫人已經。是否可以在遊標查詢中制定這個條件,還是必須在自定義的遊標適配器中執行?Android遊標查詢中的複雜WHERE條件

這是我現在的代碼。它工作正常,但它檢索所有聯繫人的所有號碼,因此如果一個人有多個聯繫人,我會得到重複的姓名。

private String WHERE_CONDITION = ContactsContract.Data.MIMETYPE + " = '" + 
ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE + "'"; 
private String[] PROJECTION = {ContactsContract.Data.DISPLAY_NAME, 
ContactsContract.Data.DATA1, ContactsContract.Data._ID }; 
private String SORT_ORDER = ContactsContract.Data.DISPLAY_NAME; 
cursor = this.getContentResolver().query(
ContactsContract.Data.CONTENT_URI, PROJECTION, WHERE_CONDITION, null, SORT_ORDER); 

任何幫助非常感謝!

+0

道歉,錯誤標記爲JavaScript。現在更改爲Java。 – Phat7

回答

0

將這個邏輯放在Java中會更容易和更簡單。只需檢索所有數字並選擇您需要的數字即可。通常情況下,您最多隻能有3個數字,可能是5.在任何情況下,開銷都會很低。

+0

對不起,請參閱我上面的評論。將標籤更改爲Java。 – Phat7