2012-01-27 17 views
0

私のアプリから連絡先リストから複数の連絡先を読むことは可能ですか? 私が見つけたのは連絡先のリストを受信し、リストをループする方法です。androidの連絡先を読む

How to read contacts on Android 2.0

が、私は私の選択の連絡先を選択するための別々のレイアウトを作成して、連絡先リストからのデータとそのレイアウトをロードする必要がありcontacts.doのリストからそれらのいくつかを選択することが可能です??助けてください。

+0

を読み込む方法をすばやく参照してください?またはCONTACT_PICKインテントを使用して連絡先を選択することについて話していますか? –

答えて

0

連絡先のリストから任意の連絡先を選択することはできますが、問い合わせに適切な「where」句(つまり、どのような種類の連絡先をリストから検索するか)を見つけるだけで済みます。

はい、別のレイアウトを作成して表示する必要があります。例については

:電話番号を取得する連絡先

Cursor cursor = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI,null, ContactsContract.Contacts.HAS_PHONE_NUMBER+"='true'", null, null); // gives you the list of contacts who has phone numbers 

while (cursor.moveToNext()) { 

    String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID)); 
    Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = "+ contactId, null, null); 
    while (phones.moveToNext()) { 
     String phoneNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));     
     } 
     phones.close(); 
} 

希望は、私はあなたの要件は、私に知らせてくださいませんcorrectly.If入手します!

+0

実際には 'where'節ではなく、チェックボックスの助けを借りて連絡先のいくつかを選択することです(新しいxmlの連絡先の側から提供されます)。これは同じ方法??? – scooby

+0

つまり、1つの画面にあるすべての連絡先に、それぞれのチェックボックスを入力し、チェックボックスがオンになっている連絡先を再選択したいのですか? – Hiral

+0

もしそうなら、選択した連絡先のIDを配列に格納してから、それらをContentResolverから再度クエリしてlistviewに入力する必要があります。 – Hiral

-1
  1. 基本的にはcontact_idと呼ばれる独自の IDを持つすべての連絡先を反復処理する必要があります。

  2. ループ内のカーソル内ではカーソルを使用しないでください。

このデモアプリを試してみてください。あなたは、プログラムContactsContractProviderから連絡先を読み込むについて話している:それはあなたが二つの異なる事柄について話しているように見え、適切なアンドロイドの方法で連絡先

Source code attached

+0

このリンクは質問に答えるかもしれませんが、答えの本質的な部分をここに含めて参考にしてください。リンクされたページが変更された場合、リンクのみの回答は無効になります。 –

+0

確かに私はいくつかの情報を提供します –

関連する問題