ImageVerifierCode 换一换
格式:DOCX , 页数:22 ,大小:163.94KB ,
资源ID:20823329      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/20823329.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Android入门之增删改查通讯录Word文件下载.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Android入门之增删改查通讯录Word文件下载.docx

1、表结构如下:通讯录是存放在/data/data/com.android.providers.contacts/databases/contacts2.db,里面主要的表有:(1)raw_contacts:存放联系人的ID,_id属性为主键,声明为autoincrement,即不需要手动设置,其他属性也不需要手动设置就有默认值;display_name属性为姓名;(2)mimetypes:存放数据的类型,比如vnd.android.cursor.item/name表示“姓名”类型的数据,vnd.android.cursor.item/phone_v2表示“电话”类型的数据;(3)data:存放具

2、体的数据;raw_contact_id属性用来连接raw_contacts表,每条记录表示一个具体数据;我们主要的数据(email、phone等)都存放在data表;【成都android培训】data1属性存放总数据;data2属性:-如果此记录存放姓名,则data2存放名;-如果此记录存放电话,则data2存放类型,比如手机、家电;-如果此记录存放组织,则data2存放类型,比如公司、其他;-如果此记录存放地址,则data2存放类型,比如住宅,单位等;四、对通信录做增删改查简单的说:对通讯录操作就是对一个普通的ContentProvider操作;1.Query(1)根据电话号码查询姓名jav

3、a1. /根据电话号码查询姓名(在一个电话打过来时,如果此电话在通讯录中,则显示姓名)2. publicvoidtestReadNameByPhone()3. String phone =12345678;4. /uri= content:/com.android.contacts/data/phones/filter/#5. Uri uri = Uri.parse(content:/com.android.contacts/data/phones/filter/+phone);6. ContentResolver resolver =this.getContext().getContentR

4、esolver();7. Cursor cursor = resolver.query(uri,newStringData.DISPLAY_NAME,null,null);/从raw_contact表中返回display_name8. if(cursor.moveToFirst()9. Log.i(Contacts,+cursor.getString(0);10. 11. (2)查询所有的联系人1. /读取通讯录的全部的联系人2. /需要先在raw_contact表中遍历id,并根据id到data表中获取数据3. publictestReadAll()4. /uri = content:/co

5、m.android.contacts/contacts/com.android.contacts/contacts); /访问raw_contacts表StringData._ID,/获得_id属性8. while(cursor.moveToNext()9. StringBuilder buf =StringBuilder();10. intid = cursor.getInt(0);/获得id并且在data中寻找数据11. buf.append(id=+id);12. uri = Uri.parse(/com.android.contacts/contacts/+id+/data /如果要获

6、得data表中某个id对应的数据,则URI为content:/com.android.contacts/contacts/#/data13. Cursor cursor2 = resolver.query(uri,StringData.DATA1,Data.MIMETYPE,null,null,/data1存储各个记录的总数据,mimetype存放记录的类型,如电话、email等14. while(cursor2.moveToNext()15. String data = cursor2.getString(cursor2.getColumnIndex(data1);16. if(cursor

7、2.getString(cursor2.getColumnIndex(mimetype).equals()/如果是名字17. buf.append(,name=+data);18. 19. elseif(cursor2.getString(cursor2.getColumnIndex(/如果是电话20. buf.append(,phone=21. 22. elsevnd.android.cursor.item/email_v2/如果是email23. buf.append(,email=24. 25. elsevnd.android.cursor.item/postal-address_v2)

8、/如果是地址26. buf.append(,address=27. 28. elsevnd.android.cursor.item/organization/如果是组织29. buf.append(,organization=30. 31. 32. String str = buf.toString();33. Log.i(, str);34. 35. 2.Insert(1)一步一步添加数据1. /一步一步添加数据testAddContacts()3. /插入raw_contacts表,并获取_id属性4. Uri uri = Uri.parse(/com.android.contacts/r

9、aw_contacts5. ContentResolver resolver =6. ContentValues values =ContentValues();7. longcontact_id = ContentUris.parseId(resolver.insert(uri, values);8. /插入data表9. uri = Uri.parse(/com.android.contacts/data10. /add Name11. values.put(raw_contact_id, contact_id);12. values.put(Data.MIMETYPE,13. value

10、s.put(data2zdong14. values.put(xzdong15. resolver.insert(uri, values);16. values.clear();17. /add Phone18. values.put(19. values.put(Data.MIMETYPE,20. values.put(2/手机21. values.put(8765432122. resolver.insert(uri, values);23. values.clear();24. /add email25. values.put(26. values.put(Data.MIMETYPE,2

11、7. values.put(/单位28. values.put(xzdong29. resolver.insert(uri, values);(2)批量添加数据核心代码:(1)ContentProviderOperation operation = ContentProviderOperation.newInsert(uri).withValue(key,value).build();(2)resolver.applyBatch(authorities,operations);/批量提交span style=font-size:18px;publictestAddContactsInTrans

12、action()throwsException 2. Uri uri = Uri.parse(3. ContentResolver resolver =4. ArrayList operations =ArrayList();5. / 向raw_contact表添加一条记录6. /此处.withValue(account_name, null)一定要加,不然会抛NullPointerException7. ContentProviderOperation operation1 = ContentProviderOperation8. .newInsert(uri).withValue(null

13、).build();9. operations.add(operation1);10. / 向data添加数据11. uri = Uri.parse(12. /添加姓名13. ContentProviderOperation operation2 = ContentProviderOperation14. .newInsert(uri).withValueBackReference(0)15. /withValueBackReference的第二个参数表示引用operations0的操作的返回id作为此值16. .withValue()17. .withValue(18. operations

14、.add(operation2);19. /添加手机数据20. ContentProviderOperation operation3 = ContentProviderOperation21. .newInsert(uri).withValueBackReference(22. .withValue(23. .withValue().withValue(000000024. operations.add(operation3);25. resolver.applyBatch(com.android.contacts, operations);26. 3.Delete核心思想:(1)先在raw

15、_contacts表根据姓名查出id;(2)在data表中只要raw_contact_id匹配的都删除;1. publictestDelete()throwsException2. String name =3. /根据姓名求id6. Cursor cursor = resolver.query(uri,StringData._ID,display_name=?Stringname,7. if(cursor.moveToFirst()8. int9. /根据id删除data中的相应数据10. resolver.delete(uri,Stringname);12. resolver.delete

16、(uri,raw_contact_id=?Stringid+);13. 14. 4.Update(1)不需要更新raw_contacts,只需要更新data表;(2)uri=content:/com.android.contacts/data 表示对data表进行操作;testUpdate()throws2. intid =1;999999/对data表的所有数据操作7. values.put(, phone);8. resolver.update(uri, values,mimetype=? and raw_contact_id=?String,id+)9. view plaincopyspanstyle=font-family:KaiTi;16px;2. 主要的通讯录程序为ContactsProvider2.javaauthorities=contacts或com.android.contacts;四、编程提示URI对raw_contacts表添加、删除、更新操作:URI = /com.android.contacts/raw_contacts;对data表添加、删除、更新操作:/com.android.contacts/data;根据email对data表查询URI =conte

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1