Adapter----SimpleCursorAdapter

@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的用法几乎一样了。

猜你喜欢

转载自ch-kexin.iteye.com/blog/2356873