@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

Map<String, String> map = new HashMap<String, String>();

ListView listView = (ListView) this.findViewById(R.id.list);
Cursor cursor = getContentResolver().query(
ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
if(cursor != null){

startManagingCursor(cursor);

}
ListAdapter adapter = new SimpleCursorAdapter(this,
android.R.layout.simple_list_item_1, cursor,
new String[] { PhoneLookup.DISPLAY_NAME },
new int[] { android.R.id.text1 });
listView.setAdapter(adapter);
stopManagingCursor();
}

     这只是简单的获取联系人姓名的例子而已,当然,为了能够运行该例子,我们需要添加下面的权限: 

     

<uses-permission android:name="android.permission.READ_CONTACTS" />


       这里有一个方法很值得我们注意:startManagingCursor()。它的使用是基于这样的前提:游标结果集里有很多的数据记录,像是通讯录这样的结果集,肯定符合要求。使用该方法的目标主要是把获取的Cursor对象交给Activity管理,这样Cursor的生命周期就和Activity自动同步了,这样在Activity结束的时候就能自动结束Cursor的使用。使用前最好是先判断Cursor是否为空,以免发生错误,而且使用后也要用stopManagingCursor()方法来停掉它。

       SimpleCursorAdapter除了数据来源指定是数据库之外,就和SimpleAdapter的用法几乎一样了。