Mainactivity:
public class MainActivity extends Activity {
ListView listview=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listview=(ListView)findViewById(R.id.listview1);
Cursor c=this.getContentResolver().query(ContactsContract.Contacts.CONTENT_URI,
null, null, null,null);
ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1);
while(c!=null && c.moveToNext())
{
//获得每一个联系人的id和姓名
StringBuilder sb=new StringBuilder();
int contacts_id=c.getInt(c.getColumnIndex(ContactsContract.Contacts._ID));
String name=c.getString(c.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
sb.append("姓名:"+name);
//好处是自动管理游标的生命周期
Cursor phone_cursor=this.managedQuery(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID+"="+contacts_id,
null, null);
if(phone_cursor!=null&&phone_cursor.moveToFirst())
{
String phone= phone_cursor.getString(phone_cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
sb.append(" 电话:"+phone);
}
adapter.add(sb.toString());
if(phone_cursor!=null) phone_cursor.close();
}
if(c!=null)c.close();
listview.setAdapter(adapter);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
XML:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<ListView android:id="@+id/listview1"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
</RelativeLayout>
权限:
<uses-permission android:name="android.permission.READ_CONTACTS"/>
<uses-permission android:name="android.permission.WRITE_CONTACTS"/>