This class is used to store a set of values that the ContentResolver can process.
用于保存一些数据(string boolean byte double float int long short ...)信息,这些信息可以被数据库操作时使用。
ContentValues() Creates an empty set of values using the default initial size |
ContentValues(int size) Creates an empty set of values using the given initial size |
ContentValues(ContentValues from) Creates a set of values copied from the given set |
ContentValues 和HashTable
ContentValues 和HashTable类似都是一种存储的机制但是两者最大的区别就在于,contenvalues只能存储基本类型的数据,像string,int之类的,不能存储对象这种东西,而HashTable却可以存储对象。
在往数据库中插入数据的时候,首先应该有一个ContentValues的对象所以:
ContentValues initialValues = new ContentValues();
initialValues.put(key,values);
SQLiteDataBase sdb ;
sdb.insert(database_name,null,initialValues);
插入成功就返回记录的id否则返回-1;
利用contentValues.put()方法,通过程序添加通讯录里面的联系人资料
读取通讯录的权限:
<uses-permission android:name="android.permission.READ_CONTACTS"/>
1. try{
2. ContentResolver cr = this.getContentResolver();
3.
4. ContentValues cv = new ContentValues();
5. Uri phoneUri = null;
6.
7. cv.put(Contacts.People.NAME, strName);
8. cv.put(Contacts.People.STARRED, 1);// like the conatctor best
9.
10. Uri uri = Contacts.People.createPersonInMyContactsGroup(arg0, cv);
11.
12. if(phoneNum !=null && phoneNum.trim().equals("")){
13. phoneUri = Uri.withAppendedPath(uri, Contacts.People.Phones.CONTENT_DIRECTORY);
14. cv.clear();
15. cv.put(Contacts.Phones.TYPE, Contacts.Phones.NUMBER);
16. cv.put(Contacts.Phones.NUMBER, phoneNum);
17.
18. cr.insert(phoneUri, cv);
19. }
20. if(strEmail !=null && strEmail.trim().equals("")){
21. Uri emailUri = Uri.withAppendedPath(uri, Contacts.People.ContactMethods.CONTENT_DIRECTORY);
22. cv.clear();
23. // judge the contact type via Contacts.ContactMethods.KIND
24. cv.put(Contacts.ContactMethods.KIND, Contacts.KIND_EMAIL);
25. cv.put(Contacts.ContactMethods.DATA, strEmail);
26. cv.put(Contacts.ContactMethods.TYPE, Contacts.ContactMethods.TYPE_HOME);
27.
28. cr.insert(emailUri, cv);
29. }
30.
31. }catch(Exception e){
32. return false;
33. }