Android组件系列----ContentProvider内容提供商【5】
2、执行query()方法,查询全部记录(眼下一共两条记录)。后台输出效果例如以下:

经測试,其它方法也都是能够运行的。
事实证明,新建的另外一个project文件ContentResolverTest中。在里面执行单元測试。也是可以执行的(单元測试的代码不变,实现的CRUD功能也一模一样),也就是说,可以对ContentProviderTest01中的SQLite进行CRUD操作。
比如,执行query()方法,后台输出例如以下:

这样,我们的目的也就达到了。
【特别注意】
须要特别注意的是,代码中uri不要写错了,这些错误一旦发生。非常难被发现。
详细表如今:
1、清单文件里:
<provider
android:name=".内容提供者的类名"
android:authorities="包名.内容提供者的类名" >
</provider>
如:
<provider
android:name=".PersonContentProvider"
android:authorities="com.example.contentprovidertest01.PersonContentProvider" >
</provider>
2、ContentProvider类中的UriMatcher中的uri:

1 private static final UriMatcher URI_MATCHER = new UriMatcher(
2 UriMatcher.NO_MATCH);// 默认的规则是不匹配的
3 private static final int PERSON = 1; // 操作单行记录
4 private static final int PERSONS = 2; // 操作多行记录
5 // 往UriMatcher中加入匹配规则。 注意,这里面的url不要写错了,我就是由于写错了,半天没调试出来。哎···
6 static {
7 // 加入两个URI筛选
8 URI_MATCHER.addURI("com.example.contentprovidertest01.PersonContentProvider",
9 "person", PERSONS);
10 // 使用通配符#,匹配随意数字
11 URI_MATCHER.addURI("com.example.contentprovidertest01.PersonContentProvider",
12 "person/#", PERSON);
13 }

3、ContentProvider类中的getType()方法里面的代码:

1 @Override
2 public String getType(Uri uri) {
3 int flag = URI_MATCHER.match(uri);
4 switch (flag) {
5 case PERSON:
6 return "vnd.android.cursor.item/person"; // 假设是单条记录,则为vnd.android.cursor.item/
7 // + path
8 case PERSONS:
9 return "vnd.android.cursor.dir/persons"; // 假设是多条记录,则为vnd.android.cursor.dir/
10 // + path
11 }
12 return null;
13 }

4、ContentResolver类中的uri:(以insert()方法为例)

1 //測试方法:向数据库中加入记录。 假设之前没有数据库。则会自己主动创建
2 public void insert() {
3 // 使用内容解析者ContentResolver訪问内容提供者ContentProvider
4 ContentResolver contentResolver = getContext().getContentResolver();
5 ContentValues values = new ContentValues();
6 values.put("name", "生命贰号");
7 values.put("address", "湖北");
8 // content://authorities/person
9 // http://
10 Uri uri = Uri
11 .parse("content://com.example.contentprovidertest01.PersonContentProvider/person");
12 contentResolver.insert(uri, values);
13 }
Android组件系列----ContentProvider内容提供商【5】的更多相关文章
- Android组件系列----ContentProvider内容提供者
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- Android组件系列----ContentProvider内容提供者【1】
[正文] 一.ContentProvider简单介绍: ContentProvider内容提供者(四大组件之中的一个)主要用于在不同的应用程序之间实现数据共享的功能. ContentProvider能 ...
- Android组件系列----ContentProvider内容提供者【4】
(4)单元測试类: 这里须要涉及到另外一个知识:ContentResolver内容訪问者. 要想訪问ContentProvider.则必须使用ContentResolver. 能够通过ContentR ...
- Android组件系列----BroadcastReceiver广播接收器
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/3 ...
- Android组件系列----Activity组件详解
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/3 ...
- Android组件系列----Android Service组件深入解析
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- Android组件系列----Intent详解(转载笔记)
[正文] Intent组件虽然不是四大组件,但却是连接四大组件的桥梁,学习好这个知识,也非常的重要. 一.什么是Intent 1.Intent的概念: Android中提供了Intent机制来协助应用 ...
- Android组件系列----Intent详解
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/3 ...
- Android 组件系列-----Activity初步
在上篇博文讲解了Android的Activity这个组件的启动流程后,接下来我们就来看看我们的Activity与我们的布局文件的关系吧 我们先来看看一个最简单的布局文件的内容: <Relativ ...
随机推荐
- SWT的TreeViewer和TableViewer的交互
左边是一个TreeViewer,右边是一个TableViewer.当点击左边的treeitem的时候,右边的tableViewer要将该item的子节点信息显示出来.就像这样: 左边的treeView ...
- 泛泰A850 (高通8064+720p)刷4.4专用中文recovery TWRP2.7.1.3版
欢迎关注泛泰非盈利专业第三方开发团队 VegaDevTeam (本team 由 syhost suky zhaochengw(z大) xuefy(大星星) tenfar(R大师) loogeo cr ...
- Android - 位置定位(Location)服务(Service)类的基本操作
位置定位(Location)服务(Service)类的基本操作 本文地址: http://blog.csdn.net/caroline_wendy 定位服务(Location Service),能够确 ...
- MYSQL经常使用命令列表
MYSQL经常使用命令列表 1.系统管理 mysql -h主机地址 -uusername -p 连接MYSQL(在mysql/bin) exit 退出MYSQL命令 mysqladmin -uuser ...
- Android基于cordova3.3插件开发
最近的工作项目,需要使用cordova插件开发,详细Cordova角色,不会走,你可以去百度自身OK该,直接启动.详细过程,我有一个小Demo解说提前进行. 还只是接触,东西太理论基础,我也不太清楚, ...
- Eclipse怎么显示行号,定位某行
Eclipse怎么显示行号,定位某行 设置显示行号 1 快捷键:Ctrl+F10,点击'Show Line Numbers'即可. 如果取消显示行号,也可以按这个快捷键,然后再点击show line ...
- 采用keepalived施工可用性MySQL-HA
描述了使用keepalived施工可用性MySQL-HA,两个保证MySQL数据一致性,然后,keepalived虚拟IP,经keepalived内置的在线监测功能来实现MySQL. AD: 关于My ...
- 黄聪:Microsoft Enterprise Library 5.0 系列教程(八) Unity Dependency Injection and Interception
原文:黄聪:Microsoft Enterprise Library 5.0 系列教程(八) Unity Dependency Injection and Interception 依赖注入容器Uni ...
- 关于产品的一些思考——腾讯之QQ音乐
--------------------2014.5.11-------------------- 原来一直使用小米手机自带的音乐播放器,除了搜歌下载不方便,其它的还好(省电是最大的长处),用过Jin ...
- ios 仿新浪微博 UINavigationController 向左滑动时显示上一个控制器的View.
仿新浪微博 UINavigationController 向左滑动时显示上一个控制器的View. 实现原理,UINavigationController 的 self.view显示时把当前显示的vie ...