2011-02-23 124 views
0

我只是想访问联系人内容提供商。对于我写下面的代码访问联系人内容提供商

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

    startManagingCursor(cur); 

    String[] result=new String[cur.getCount()]; 

    if(cur.moveToFirst()) 
    { 
     int nameidx=cur.getColumnIndexOrThrow(ContactsContract.Contacts.DISPLAY_NAME); 
     int Ididx=cur.getColumnIndexOrThrow(ContactsContract.Contacts._ID); 
     String strName=cur.getString(nameidx); 
     String strId=cur.getString(Ididx); 

     result[cur.getPosition()]=strName+"("+strId+")"; 
    }while(cur.moveToNext()); 

    stopManagingCursor(cur); 
} 

但它显示我想显示所有可用的接触,请告诉我该怎么做,只有一个联系人姓名。

+0

你肯定的 “而”?我认为这个问题在这里 – Nanis 2011-02-23 11:12:20

+0

你在哪里做的声明?????? – 2011-02-23 11:16:46

+0

其实我错过了我的做的声明是这个问题。感谢 – Neha 2011-02-23 12:06:11

回答

1

试试这个,而不是

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

startManagingCursor(cur); 

String[] result=new String[cur.getCount()]; 

for (boolean hasData = cursor.moveToFirst(); hasData; hasData = cursor.moveToNext()) 
{ 
    int nameidx=cur.getColumnIndexOrThrow(ContactsContract.Contacts.DISPLAY_NAME); 
    int Ididx=cur.getColumnIndexOrThrow(ContactsContract.Contacts._ID); 
    String strName=cur.getString(nameidx); 
    String strId=cur.getString(Ididx); 

    result[cur.getPosition()]=strName+"("+strId+")"; 
} 
stopManagingCursor(cur); 
} 
+0

你能告诉我宁可tha巢retrives _id我可以直接检索电话号码吗??????? – Neha 2011-02-23 12:07:09

+0

试试这个http://www.vtgroup.com/#ContactsContract – ingsaurabh 2011-02-23 12:16:27