上一篇我们说了我内容提供者的创建。这篇我们主要说下内容提供中的使用方法。
要使用内容提供者,我们需要借助于内容提供者的一个工具类ContentResolver。ContentResolver里面的增删改查的方法就是调用内容提供中的方法。
创建ContentProvider中的增删改查的方法里面的参数。我们没有介绍,首先介绍下这些方法里里面的参数。
我们看上一篇的代码中,不难看出,在每个方法中,都有一个参数,那就是Uri。什么是Uri?
Uri分为三部分。用个例子来说明下。
content://com.51cto.blog.bingtianxuedi/person/1
content:// 是Android为我们提供访问内容提供者的scheme.是一种规定,不可修改。
com.51cto.blog.bingtianxuedi/ 我们c创建ContentProvider,在AndroidManifest.xml配置的authorities
person/1 路径,根据业务而定。假如我们查询的是数据库,就表示person表下的id为1的那条记录。假如我们查询的是xml文件下的person节点下的name节点,可写成person/name。
知道了是什么是uri下面的参数就很好理解了。
ContentValues是什么呢?
它就像一个Map集合,为我们提供了put方法和get方法,key存放的是字段名,value就是我们要插入或者修改的值。
- //增
- public Uri insert(Uri uri, ContentValues values)
- //删
- public int delete(Uri uri, String selection, String[] selectionArgs)
- //selection 要查询条件的,相当于SQLite数据库查询语句中的where后面的内容.name = ?
- //delete from person where name=?
- //selectionArgs 就对应查询条件占位符的值。替代问号的值
- //改
- public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs)
- //查
- public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs,
- String sortOrder)
- //sortOrder 排序,对应sql语句后order by 后面的部分
知道了上面每个参数的含义,我们就可以使用内容提供者了,这要创建ContentResolver对象就可以操作内容提供者了。ContentResolber可以通过Context.getContentResolver()得到。