SimpleCursorAdapter需要造作数据库,一般通讯录Contacts就是用这种适配器,就是从Cursor游标里取得的数据用ListView显示,并可以把指定的列表映射到TextView中(这里的TextView是android.R.layout.simple_expandable_list_item_1.xml),文件如下(系统自带的)
Java代码
Cursor cursor = getContentResolver().query(People.CONTENT_URI, null, null, null, null);先获得一个指向系统通讯录数据库的Cursor对象获得数据来源。
startManagingCursor(cursor);我们将获得的Cursor对象交由Activity管理,这样Cursor的生命周期和Activity便能够自动同步,省去自己手动管理Cursor。
SimpleCursorAdapter 构造函数前面3个参数和ArrayAdapter是一样的,最后两个参数:一个包含数据库的列的String型数组,一个包含布局文件中对应组件id的int型数组。其作用是自动的将String型数组所表示的每一列数据映射到布局文件对应id的组件上。上面的代码,将NAME列的数据一次映射到布局文件的id为text1的组件上。
注意:需要在AndroidManifest.xml中如权限:<uses-permission android:name="android.permission.READ_CONTACTS"></uses-permission>
否则会出错
本来想做一个可以显示联系人姓名和电话号码的例子,但是电话号码总是去不出来,运行就出错,1.5以后联系人的API跟以前的不一样,弄了一天,还是有很多错误,只能暂停了,以后再慢慢的去了解
SimpelCursorAdapterTest.java
Java代码
main.xml
Java代码
运行结果如下:
Java代码
Cursor cursor = getContentResolver().query(People.CONTENT_URI, null, null, null, null);先获得一个指向系统通讯录数据库的Cursor对象获得数据来源。
startManagingCursor(cursor);我们将获得的Cursor对象交由Activity管理,这样Cursor的生命周期和Activity便能够自动同步,省去自己手动管理Cursor。
SimpleCursorAdapter 构造函数前面3个参数和ArrayAdapter是一样的,最后两个参数:一个包含数据库的列的String型数组,一个包含布局文件中对应组件id的int型数组。其作用是自动的将String型数组所表示的每一列数据映射到布局文件对应id的组件上。上面的代码,将NAME列的数据一次映射到布局文件的id为text1的组件上。
注意:需要在AndroidManifest.xml中如权限:<uses-permission android:name="android.permission.READ_CONTACTS"></uses-permission>
否则会出错
本来想做一个可以显示联系人姓名和电话号码的例子,但是电话号码总是去不出来,运行就出错,1.5以后联系人的API跟以前的不一样,弄了一天,还是有很多错误,只能暂停了,以后再慢慢的去了解
SimpelCursorAdapterTest.java
Java代码
main.xml
Java代码
运行结果如下: