Android组件系列—-ContentProvider内容提供商【5】

Android组件系列—-ContentProvider内容提供商【5】

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

2、执行query()方法,查询全部记录(眼下一共两条记录)。后台输出效果例如以下:

c5324531-b69a-46f1-be87-295d5e23806b

经測试,其它方法也都是能够运行的。

事实证明,新建的另外一个project文件ContentResolverTest中。在里面执行单元測试。也是可以执行的(单元測试的代码不变,实现的CRUD功能也一模一样),也就是说,可以对ContentProviderTest01中的SQLite进行CRUD操作。

比如,执行query()方法,后台输出例如以下:

4180318a-9f6a-42ea-95de-cdc3548c7bd2

这样,我们的目的也就达到了。

【特别注意】

须要特别注意的是,代码中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 }

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/117398.html原文链接:https://javaforall.net

(0)
上一篇 2022年1月6日 上午11:00
下一篇 2022年1月6日 下午12:00


相关推荐

  • Fork/Join框架阅读笔记[通俗易懂]

    Fork/Join框架阅读笔记[通俗易懂]什么是Fork/Join框架Fork/Join框架是Java 7提供的一个用于并行执行任务的框架,是一个把大任务分割成若干 个小任务,最终汇总每个小任务结果后得到大任务结果的框架。 我们再通过Fork和Join这两个单词来理解一下Fork/Join框架。Fork就是把一个大任务切分 为若干子任务并行的执行,Join就是合并这些子任务的执行结果,最后得到这个大任务的结 果。比如计算1+2+…+10000,可以分割成10个子任务,每个子任务分别对1000个数进行求和, 最终汇总这10个子任务的结果。Fork/

    2022年8月9日
    15
  • 2021-02-04-scrapy爬虫案例1:爬取博客园新闻版块详情页-基础入门篇[通俗易懂]

    2021-02-04-scrapy爬虫案例1:爬取博客园新闻版块详情页-基础入门篇[通俗易懂]作者:Barranzi_注:本文所有代码、案例测试环境:1.Linux–系统版本:Ubuntu20.04LTS2.windows–系统版本:WIN1064位家庭版所需第三方库安装pillowpipinstallpillow-ihttps://pypi.douban.com/simplemysqlclientpipinstallmysqlclient-ihttps://pypi.douban.com/simple新建scrapy项目

    2022年6月26日
    26
  • 无名汉化组官网_neverland永无岛

    无名汉化组官网_neverland永无岛永无乡包含 n 座岛,编号从 1 到 n ,每座岛都有自己的独一无二的重要度,按照重要度可以将这 n 座岛排名,名次用 1 到 n 来表示。某些岛之间由巨大的桥连接,通过桥可以从一个岛到达另一个岛。如果从岛 a 出发经过若干座(含 0 座)桥可以到达岛 b ,则称岛 a 和岛 b 是连通的。现在有两种操作:B x y 表示在岛 x 与岛 y 之间修建一座新桥。Q x k 表示询问当前与岛 x 连通的所有岛中第 k 重要的是哪座岛,即所有与岛 x 连通的岛中重要度排名第 k 小的岛是哪座,请你输出那

    2022年8月9日
    12
  • 用Matlab筛选mirbase,一种基于miRBase数据库的无参的miRNA数据分析方法与流程

    用Matlab筛选mirbase,一种基于miRBase数据库的无参的miRNA数据分析方法与流程本发明涉及转录组测序领域,具体涉及一种在miRBase数据库中无本物种参考miRNA数据的miRNA测序的数据分析方法。背景技术:miRNA是一类由内源基因编码非编码单链RNA分子,在动植物中参与转录后基因表达调控。多数miRNA以单拷贝、多拷贝或基因簇的形式存在于基因组中。miRNA在很多物种中被广泛发现,且在进化进程中高度保守,因此研究miRNA的确切功能、目的靶基因、以及其作用机制,是转录组…

    2025年7月30日
    4
  • 压力测试概念及方法(TPS/并发量)

    压力测试概念及方法(TPS/并发量)最近在对代码进行压力测试 这里整理一下压测中的指标和方法 文章目录 1 压力测试中的指标 1 1TPS1 2QPS1 3 平均处理时间 RT 1 4 并发用户数 并发量 1 5 换算关系 1 5TPS 和 QPS 的区别 2 压力测试方法 3 相关文档 1 压力测试中的指标 1 1TPSTPS 即 Transactions 的缩写 每秒处理的事务数目 一个事务是指一个客户机向服

    2026年3月26日
    2
  • row_number() OVER (PARTITION BY COL1 ORDER BY COL2)「建议收藏」

    row_number() OVER (PARTITION BY COL1 ORDER BY COL2)

    2022年1月23日
    59

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号