電話から番号のみの連絡先を取得してarrayListに入れ、レイジーアダプターで表示し、名前をクリックすると番号のみを表示しようとしています。連絡先と番号のリストを取得できましたが、問題は、複数の番号を持つ連絡先がある場合、リストに追加されるだけです。
たとえばのようなもの
デビッド +1 508 656 9043
デビッド +1 403 604 7053
デビッド +1 212 608 7053
代わりに、David だけをリストに表示したいと思います。クリックすると、3 つの数字がすべて表示されます。
私はこれを試しました:
void getContactNumbers()
{
ContentResolver cr = getContentResolver();
String sortOrder = ContactsContract.Contacts.DISPLAY_NAME+ " COLLATE LOCALIZED ASC";
Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, sortOrder);
if (cur.getCount() > 0)
{
while (cur.moveToNext())
{
String id = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID));
String name = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
Log.e("contact", "...Contact Name ...." + name);
if (Integer.parseInt(cur.getString(cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0)
{
Cursor pCur = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,null,ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = ?",
new String[]{id}, null);
while (pCur.moveToNext())
{
String phoneNo = pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
Log.e("contact", "...Contact Name ...." + name + "...contact Number..." + phoneNo);
}
pCur.close();
}
}
}
}
この部分をどう解決するか。
ありがとう!