2011-09-16 7 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つの番号があります。いずれの場合も、オーバーヘッドは非常に低くなります。

+0

申し訳ありませんが、上記の私のコメントを参照してください。タグをJavaに変更しました。 – Phat7