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 ...
随机推荐
- JAVA 根据经纬度算出附近的正方形的四个角的经纬度
/** * * @param longitude 经度 * @param latitude 纬度 * @param distance 范围(米) * @return */ public static ...
- php判断页面是电脑登录还是手机登录
首先说最根本的解决方法: 手机访问时,会附带发送user-agent信息,这个信息里面会有手机号码信息,那么如果能取得手机号码,则可以肯定是通过手机wap访问的.但是目前 中国移动已经屏蔽了user- ...
- 浅谈android的am命令
android系统为大家提供了adb工具,在adb的基础上执行adb shell就可以从PC上对手机侧执行shell命令.和pc的linux系统一样,在系统的默认路径syste/bin下面是可执行程序 ...
- Python学习入门基础教程(learning Python)--3.1Python的if分支语句
本节研究一下if分支语句. if分支语句是Python下逻辑条件控制语句,用于条件执行某些语句的控制操作,当if后的条件conditon满足时,if其下的语句块被执行,但当if的控制条件condito ...
- 参数化测试--sheet表的应用
自动化测试对录制和编辑好的测试步骤进行回放,这种是线性的自动化测试方式,其缺点是明显的,就是其测试覆盖面比较低.测试回放的只是录制时做出的界面操作,以及输入的测试数据,或者是脚本编辑时指定的界面操作和 ...
- log4net和一般的记录日志方法
下载 http://files.cnblogs.com/crazyair/log4net.zip 1 在web项目中新建一个 Log4Net.config <?xml version=" ...
- HBaseConvetorUtil 实体转换工具
HBaseConvetorUtil 实体转换工具类 public class HBaseConvetorUtil { /** * @Title: convetor * @De ...
- spring问题排查-调低日志等级
问题描写叙述 1. 页面经过一次改动后,提交后页面出现400错误,可是后台并没有输出不论什么错误信息. 2. debug监听应页面对应的提交链接也没有不论什么反应(没有进入后台的controller方 ...
- 深入了解mysql它BDB系列(1)---BDB基础知识
深入了解mysql它BDB系列(1) ---BDB关基础知识 作者:杨万富 一:BDB体系结构 1.1.BDB体系结构 BDB总体的体系结构如图1.1所看到的.包括五个子系统(见图1.1中 ...
- hdu 4524 郑厂长系列故事——逃离迷宫 小水题
郑厂长系列故事——逃离迷宫 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) To ...