内容提供者学习笔记

##内容提供者笔记##
###步骤###
1、创建实现了ContentProvider的子类MyContentProvider并重写父类的方法

2、作为android四大组件之一,要在manifest.xml文件中注册provider标签

<provider
            android:name="cn.itcast.db.MyContentProvider"
            android:authorities="cn.itcast.db.persondb" >
    </provider>
>其中
>**name**为Myprovider所在的文件路径;
>**authorities**为自定义内容,但最好应顾名思义(应为数据库所在的包名/数据库名)

3、创建UriMatcher对象,参数舒适化为 **-1**

public static UriMatcher urimacher = new UriMatche(-1);

4、在静态代码块中增加uri路径

static{
            urimacher.addURI("cn.itcast.db.persondb","query",1);
            urimacher.addURI("cn.itcast.db.persondb","insert",2);
            urimacher.addURI("cn.itcast.db.persondb","delete",3);
            urimacher.addURI("cn.itcast.db.persondb","update",4);
            //content://cn.itcast.db.persondb/insert
            //content://cn.itcast.db.persondb/delete
            //content://cn.itcast.db.persondb/update
            //content://cn.itcast.db.persondb/query
        }
5、重写query方法时

public Cursor query(Uri uri, String[] projection, String selection,
            String[] selectionArgs, String sortOrder) {
        // TODO Auto-generated method stub
        int result = urimacher.match(uri);
        if(result==1){
            SQLiteDatabase db = sqlite.getReadableDatabase();
            return db.query("info", projection, selection, selectionArgs, null, null, sortOrder);
        }else{
            throw new RuntimeException("路径错误,请求得到数据失败");
        }
    }
6、在其他应用程序中通过内容提供者获取内容

Uri uri = Uri.parse("content://cn.itcast.db.persondb/query");
        Cursor cursor = resolver.query(uri, null, null, null, null);
        while(cursor.moveToNext()){
            int id = cursor.getInt(cursor.getColumnIndex("_id"));
            String name = cursor.getString(cursor.getColumnIndex("name"));
            String phone = cursor.getString(cursor.getColumnIndex("phone"));
            System.out.println(id+"--"+name+"--"+phone);
        }
        cursor.close();
*根据内容提供者中已添加的uri路径进行使用*
**//content://cn.itcast.db.persondb/insert
  //content://cn.itcast.db.persondb/delete
  //content://cn.itcast.db.persondb/update
  //content://cn.itcast.db.persondb/query**

时间: 2024-10-11 05:09:20

内容提供者学习笔记的相关文章

自定义属性,匹配数组内容——JS学习笔记2015-5-26(第39天)

使用自定义属性匹配数组内容 1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <title>匹配数组内容</title> 5 <meta charset="utf-8"> 6 <script> 7 window.onload = function(){ 8 var aBtn=document.getElementsByTagName('input'); 9 var arr =

Linux对文件内容基本操作(学习笔记七)

一.cat 1.1.查看文件内容 格式:cat 文件名 [[email protected] /]# cat /etc/resolv.conf # Generated by NetworkManager nameserver 10.198.1.1 nameserver 8.8.8.8 [[email protected] /]# 但是当文件内容比较多,超过一屏时,cat命令就不能满足查看要求,就要用到more|less来查看 1.2.重定向输入文件内容到新的文件 [[email protecte

http请求内容压缩学习笔记

import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.PrintWriter; import java.util.zip.GZIPOutputStream; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRe

udacity android学习笔记: lesson 3

udacity android学习笔记: lesson 3 作者:干货店打杂的 /titer1 /Archimedes 出处:https://code.csdn.net/titer1 联系:1307316一九六八 声明:本文采用以下协议进行授权: 自由转载-非商用-非衍生-保持署名|Creative Commons BY-NC-ND 3.0 ,转载请注明作者及出处. tips:https://code.csdn.net/titer1/pat_aha/blob/master/Markdown/an

Linux学习笔记——例说makefile 增加自定义共享库

0.前言 从学习C语言开始就慢慢开始接触makefile,查阅了很多的makefile的资料但总感觉没有真正掌握makefile,如果自己动手写一个makefile总觉得非常吃力.所以特意借助博客总结makefile的相关知识,通过例子说明makefile的具体用法. 例说makefile大致分为4个部分 1.只有单个C文件 2.含有多个C文件 3.需要包括头文件路径 4.增加宏定义 5.增加系统共享库 6.增加自定义共享库 7.一个实际的例子 [代码仓库]--makefile-example

Android学习笔记-----------内容提供者

Android学习笔记-----------内容提供者 简介 内容提供者主要用于在不同的程序之间实现数据共享的功能;一个程序想要访问其他程序种由内容提供者提供的数据,必须依赖于contentresolver这个类的实例,可以通过getContentResolver()这个方法来获取这个类的实例;这个类提供有query(),insert(),update(),delete()等方法来操作数据这些方法都需要提供个Uri类型的参数,这个Uri对应的就是你需要操作的数据引用.一个uri主要由以以下几个部

Vue学习笔记入门篇——组件的内容分发(slot)

本文为转载,原文:Vue学习笔记入门篇--组件的内容分发(slot) 介绍 为了让组件可以组合,我们需要一种方式来混合父组件的内容与子组件自己的模板.这个过程被称为 内容分发 (或 "transclusion" 如果你熟悉 Angular).Vue.js 实现了一个内容分发 API,使用特殊的 'slot' 元素作为原始内容的插槽. 编译作用域 在深入内容分发 API 之前,我们先明确内容在哪个作用域里编译.假定模板为: <child-component> {{ messa

Android学习笔记(二十)——自定义内容提供器

//此系列博文是<第一行Android代码>的学习笔记,如有错漏,欢迎指正! 如果我们想要实现跨程序共享数据的功能,官方推荐的方式就是使用内容提供器,可以通过新建一个类去继承 ContentProvider 的方式来创建一个自己的内容提供器: 一.继承ContentProvider的六个方法: ContentProvider 类中有六个抽象方法,我们需要使用子类去继承它,并重写六个方法,我们先来认识这六个类.新建 MyProvider继承自 ContentProvide,代码如下所示: 1 p

Linux学习笔记——如何使用echo指令向文件写入内容

0.前言 本文总结如何使用echo命令向文件中写入内容,例如使用echo指令覆盖文件内容,使用echo指令向文件追加内容,使用echo指令往文件中追加制表符. echo向文件中输出内容的基本方法是使用IO重定向指令--">",默认情况下echo输出到标准输出中,使用>指令可重定向输出到文件中. 1.echo指令基本用法 [1]Linux官方用户手册--echo指令 [2]输入指令获得帮助 sudo echo --help 返回内容如下 用法:echo [短选项]... [字