0

このサイトのチュートリアルに従って、Android で連絡先の電話番号を取得しています。

私が直面している問題は、最後の連絡先番号を取得できないようだということです。たとえば、3 つの連絡先を保存した場合、最初の 2 つの番号が表示されます。

誰にも役立つ場合は、私のコードも投稿します。

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));
            if(Integer.parseInt(cur.getString(cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER)))>0){
                pCur=getContentResolver().
                        query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, 
                                ContactsContract.CommonDataKinds.Phone._ID+"=?", 
                                new String[]{id}, null);
                while(pCur.moveToNext()){
                    number.add(pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)));
                }                   
            }
            pCur.close();
        }
    }

どんな助けでも大歓迎です。ありがとう!

============================

編集:以下に興味がある人のために、私のために働くコードがあります:

Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,null,null, null);
    while (phones.moveToNext())
    {
      String name=phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
      String phoneNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
      Log.i("Details", "Name: "+name+"  Number: "+phoneNumber);

    }
    phones.close();
4

2 に答える 2

0

Hi try the following code to get all contacts

        Cursor c=dbHelper.getAllContact();
        startManagingCursor(c);
        ArrayList<String> columnArray1 = new ArrayList<String>(); 
        if (c.moveToFirst())
        {
            do {          
                columnArray1.add(c.getString(0));
            } while (c.moveToNext());
        }
于 2013-03-04T08:53:42.883 に答える
0
String[] projection = new String[]{ContactsContract.CommonDataKinds.Phone._ID,
                                    ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,
                                    ContactsContract.CommonDataKinds.Phone.NUMBER};
    String selection = ContactsContract.CommonDataKinds.Phone.HAS_PHONE_NUMBER;
                        + 
    String[] selectionArgs = new String[] { "1" };                            
    Cursor c =  getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, 
                                        projection, 
                                        selection, 
                                        selectionArgs, null}
if (c.moveToFirst())
{
     do
     {
        Log.d("Test", "Contact: id = " + c.getLong(0) + " name = " + c.getString(1) + " phone = " + c.getString(2));
     }
}
于 2013-03-04T08:02:29.163 に答える