2011-10-18 6 views
0

私はlistview.nowを作成しました。リストビューのアンドロイド(電話帳)の連絡先リストからデータ(連絡先番号、名前)を表示します。 私はアンドロイド1.5のためにそれを手に入れましたが、私はandroid2.1updatedのためにそれをしたいと思います。android 2.1の私の別個のlistviewのアンドロイドの連絡先リストのデータを取得する方法は?

どのようにすればいいですか?誰かが私を案内したり、サンプルコードを書いたりできますか? ありがとうございます---

+0

どのコードを試しましたか? – Hiral

答えて

1

あなたは1.5でそれを達成している場合は、URIの小さな違いがあることができます。あなたは2.1の連絡先の更新された/変更されたURIのために行く必要があります。さらに理解を深めるために、2.1アップデートのサンプルコードを次に示します。

ContentResolver cr = getContentResolver(); 
Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null); 
while (cur.moveToNext()) 
     { 
      String id = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID)); 

      //---------------------------------------- Contact Names   
      //------------------------------------------------------ 
      String DisplayName = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)); 
      Cursor names = cr.query(ContactsContract.Data.CONTENT_URI, null,ContactsContract.Data.CONTACT_ID + " = " + id, null, null); 
      names.moveToNext(); 
      String GivenName = names.getString(names.getColumnIndex(ContactsContract.Data.DATA2)); 
      String FamilyName = names.getString(names.getColumnIndex(ContactsContract.Data.DATA3)); 
      String MiddleName = names.getString(names.getColumnIndex(ContactsContract.Data.DATA5)); 
      names.close(); 


      //----------------------------------------- Phone Numbers 
      //------------------------------------------------------- 
      String hasPhoneNumber = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER)); 
      if (hasPhoneNumber.equals("1")) 
      { 
       Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = "+ id,null, null); 
       while (phones.moveToNext()) 
       { 
             ...... 
       } 
      } 
     } // AND SO ON.... Get which ever data you need. 

上記のコードは、私の仕事に使用したサンプルコードです。それに応じて変更を加えることで、必要なものを手に入れることができます。私はそれが助けて欲しい

1

これは連絡先を取得するのに役立ちます。特定の連絡先の電話番号を取得するための

Cursor contactList = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI,null, null,null, null); 

、あなたが使用する必要があります。

String id = contactList.getString(cur.getColumnIndex(ContactsContract.Contacts._ID)); 

Cursor phoneCursor = getContentResolver().query(
         ContactsContract.CommonDataKinds.Phone.CONTENT_URI, 
         new String[]{ContactsContract.CommonDataKinds.Phone.NUMBER}, 
         ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = ?", 
         new String[]{id}, null);