当前位置: 首页 > news >正文

Android学习笔记--Content Provider 1

MicrosoftInternetExplorer402DocumentNotSpecified7.8Normal0

1 . Content Provider 基本概念
A: Content Provider提供为存储和获取数据提供了统一的接口
B: 使用Content Provider可以在不同的应用程序之间共享数据
C: Android为常见的一些数据提供了Content Provider(包括音频 视频,图片和通讯录等等)
 
Android学习笔记--Content Provider 1 - 無牽℡↘嘸褂 - 菁华隐没℡↘芳流歇绝
2 . Uri
A:每一个ContnetProvider都拥有一个公共的URI,这个URI用于表示这个ContnetProvider所提供的数据
B: Android所提供的ContentProvider都存放在android.provider包当中
3 . Contnet Provider 实现方法
Query 
Insert
Update
Delete
getType
onCreate
4 . 实现ContentProvider的过程
A: 定义一个Content_URI 常量
B: 定义一个类 继承ContentProvider
C: 实现query , insert update,delete getType,onCreate方法;
D: AnroidManifest.xml当中进行声明;

例 :  // DatabaseHelper所为一个访问SQLite的助手类, 提供两个方面的功能
// 第一, getReadableDatabase() 和 getWritableDatabasr() 可以获得SQLiteDatabase对象
// 第二, 提供onCreate 和 onUpgrade 两个回调函数 , 允许我们在创建和升级数据库时, 进行操作
例 : public class DatabaseHelper extends SQLiteOpenHelper {
  // 数据库版本号
Private static final int VERSION = 1;

// 必须的构造函数
Public DatabaseHelper (Context context , String name , CursorFactory factory , int version) {
Super(context , name , factory , version);
}

Public DatabaseHelper (Context context , String name ,  int version) {
Super(context , name , null , version);
}

Public DatabaseHelper (Context context , String name) {
Super(context , name , null , VERSION);
}

Public void onCreate(SQLiteDatabase db) {
System.out.println("create a database");
// 拼出了建表的语句
db..execSQL("create table" +  FirstMetaData.USER_TABLE_NAME
+ "(" + FirstMetaData.UserTableMetaData._ID
+ "INTEGER PRIMARY KEY AUTOINCREMENT,"
+ FirstMetaData.UserTableMetaData.USER_NAME
+ " varchar(20));";
}


Public void onUpgrade(SQLiteDatabase db) {
System.out.println("update a database");
}
}

ContentProviderActivity 例  1 . 声明控件对象(略)
 2 . 获得控件对象(略)
 3 . 绑定事件(略)
 4 . 创建监听器对象
// insert
Public void onClick(View v) {
ContentValues values = new ContentValues ();
Values.put( FirstMetaData.UserTableMetaData.USER_NAME , "zhangsan" );
Uri uri = getContentesolver().insert( FirstMetaData.UserTableMetaData.CONTENT_URI , values );
System.out.println("uri ---->" + uri.toString());
}

// query
Public void onClick(View v) {
Cursor c= getContentResolver().query(
FirstMetaData.UserTableMetaData.CONTENT_URI , null , null , null , null
) ;
While(c.moveToNext()) {
System.out.println(c.getString(c.getColumnIndex(UserTableMeatData.USER_NAME)));
}

}




     本文转自My_King1 51CTO博客,原文链接:http://blog.51cto.com/apprentice/1360568,如需转载请自行联系原作者



相关文章:

  • SpringMVC 参数注入
  • 【开源】简单4步搞定QQ登录,无需什么代码功底【无语言界限】下 ~ Net程序员的福利...
  • IIS6.0 + openssl执行版 + Windows2003 -- 移植篇
  • 【基础】ARP协议-交换机工作原理-及广播风暴问题分析
  • 【原创】机器学习之PageRank算法应用与C#实现(2)球队排名应用与C#代码
  • 算法之【大整数乘法】
  • 编程语言影响人的思维(2
  • 使用Rancher-Gen动态更新配置文件
  • 限制Apache日志access.log文件大小
  • ntop安装过程
  • ln命令解析_学习笔记
  • 利用软硬件逻辑等价原理模拟VMware硬件环境
  • rsync+inotify实时数据同步
  • Oracle Voyager Worm 一段匿名块SQL蠕虫
  • Hadoop深入浅出,Hadoop的部署
  • [nginx文档翻译系列] 控制nginx
  • [分享]iOS开发-关于在xcode中引用文件夹右边出现问号的解决办法
  • ➹使用webpack配置多页面应用(MPA)
  • Go 语言编译器的 //go: 详解
  • isset在php5.6-和php7.0+的一些差异
  • java 多线程基础, 我觉得还是有必要看看的
  • jQuery(一)
  • MySQL Access denied for user 'root'@'localhost' 解决方法
  • scrapy学习之路4(itemloder的使用)
  • spring security oauth2 password授权模式
  • windows下使用nginx调试简介
  • 道格拉斯-普克 抽稀算法 附javascript实现
  • 简单易用的leetcode开发测试工具(npm)
  • 精彩代码 vue.js
  • 坑!为什么View.startAnimation不起作用?
  • 爬虫进阶 -- 神级程序员:让你的爬虫就像人类的用户行为!
  • 使用 QuickBI 搭建酷炫可视化分析
  • 通过npm或yarn自动生成vue组件
  • 限制Java线程池运行线程以及等待线程数量的策略
  • Java性能优化之JVM GC(垃圾回收机制)
  • 完善智慧办公建设,小熊U租获京东数千万元A+轮融资 ...
  • ​【C语言】长篇详解,字符系列篇3-----strstr,strtok,strerror字符串函数的使用【图文详解​】
  • ​第20课 在Android Native开发中加入新的C++类
  • (1)安装hadoop之虚拟机准备(配置IP与主机名)
  • (3)选择元素——(17)练习(Exercises)
  • (JSP)EL——优化登录界面,获取对象,获取数据
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • (安全基本功)磁盘MBR,分区表,活动分区,引导扇区。。。详解与区别
  • (免费领源码)python#django#mysql公交线路查询系统85021- 计算机毕业设计项目选题推荐
  • (欧拉)openEuler系统添加网卡文件配置流程、(欧拉)openEuler系统手动配置ipv6地址流程、(欧拉)openEuler系统网络管理说明
  • (三)centos7案例实战—vmware虚拟机硬盘挂载与卸载
  • (转)四层和七层负载均衡的区别
  • ***微信公众号支付+微信H5支付+微信扫码支付+小程序支付+APP微信支付解决方案总结...
  • .net core 3.0 linux,.NET Core 3.0 的新增功能
  • .NET Core6.0 MVC+layui+SqlSugar 简单增删改查
  • .NET/C# 获取一个正在运行的进程的命令行参数
  • .net操作Excel出错解决
  • /3GB和/USERVA开关
  • :“Failed to access IIS metabase”解决方法
  • @configuration注解_2w字长文给你讲透了配置类为什么要添加 @Configuration注解