黑马程序员安卓教程:ContentProvider 基本使用
更新时间:2023-09-18 08:16:01 阅读量: 幼儿教育 文档下载
- 黑马程序员安卓教程推荐度:
- 相关推荐
ContentProvider 基本使用
称 AppA)和内容访问者 B(简称 AppB)。在 AppA 中创建数据库 user.db,该 db 中有两张表,t_woman
和 t_man。AppA 通过内容提供者对外提供数据库中的数据。AppB 作为一个内容访问者,通过内容解析者(ContentResolver)实现对 AppA 中的数据进行增删改查功能。
为了演示 ContentProvider 的基本用法,在该节中我们将创建两个 Android 工程:01-内容提供者 A(简
1.2.1 创建工程 01-内容提供者A
一、在 AppA 中创建 MySQLiteOpenHelper 类
在该类中实现数据库和数据表的创建业务逻辑。
【文件 1-1】 MySQLiteOpenHelper.java
1. package com.example.contentProviderA;
2.
3. importandroid.content.Context;
4. importandroid.database.sqlite.SQLiteDatabase;
5. importandroid.database.sqlite.SQLiteDatabase.CursorFactory; 6. importandroid.database.sqlite.SQLiteOpenHelper; 7. /**
8. * 创建数据库user.db同时初始化表t_woman和t_man。 9. *
10. * @author wzy2016-1-24 11. * 12. */
3
13. public classMySQLiteOpenHelperextends SQLiteOpenHelper{ 14.
15. //数据库名称
16. private static final String DB_NAME= \17. //数据库版本号
18. private static final int VERSION =1; 19.
20. private MySQLiteOpenHelper(Contextcontext, Stringname, CursorFactory factory, 21. int version){ 22. 23. } 24.
25. publicMySQLiteOpenHelper(Context context){ 26. 27. } 28.
29. @Override
30. publicvoidonCreate(SQLiteDatabasedb){
31. Stringsql_woman=\t_woman(id integerprimarykey, 32. c_name varchar(10),c_phone varchar(20))\
33. Stringsql_man =\t_man(idinteger primarykey, 34. c_name varchar(10),c_phone varchar(20))\35. 36. 37. } 38.
39. @Override
db.execSQL(sql_woman); db.execSQL(sql_man);
this(context,DB_NAME, null, VERSION); super(context, name, factory,version);
40. publicvoidonUpgrade(SQLiteDatabase db,intoldVersion, int newVersion) {
41.
42. }
43.
44. }
45.
二、使用测试类初始化 user.db
为了让 MySQLiteOpenHelper.java 中 onCreate 方法被调用,我们可以采用一个测试类来实现,
当然使用其他方法也是可行的。这里使用测试类初始化 AppA 的数据库也是为了复习 Android Junit
Test 的使用。
创建测试类 MyTest.java,代码如【文件 1-2】所示。 【文件 1-2】 MyTest.java
1. package com.example.contentProviderA;
2.
3. importandroid.database.sqlite.SQLiteDatabase; 4. importandroid.test.AndroidTestCase;
4
5. /** 6. 7. 8. 9.
* 定义测试类,用于初始化user.db *
* @author wzy2016-1-24 *
10. */
11. publicclass MyTest extends AndroidTestCase { 12. 13. 14. 15. 16.
17.
publicvoidtest(){
/**
* 在AndroidTestCase类中可以直接使用getContext()方法获取到Context对象 */
MySQLiteOpenHelper sqLiteOpenHelperMySQLiteOpenHelper(getContext());
=
new
18. 19. 20. 21. } 22.
}
SQLiteDatabase writableDatabase sqLiteOpenHelper.getWritableDatabase(); writableDatabase.close();
=
在 AndroidManifest.xml 中添加测试指令集和测试库。 在 application 节点外添加指令集。
1. 2. 3.
android:name=\android:targetPackage=\ 在 application 节点中添加测试库。 4. 万事俱备后一定记得运行一下该测试方法,看见如下绿条和数据库文件才行哦。 图 1-2数据库初始化完成
正在阅读:
黑马程序员安卓教程:ContentProvider 基本使用09-18
高三复习指导(人大附中版)05-23
2012入党理论考试题05-12
紫金山露天采矿实习报告 - 图文10-29
公司平面设计师工作个人心得08-02
2012版生物一轮精品复习学案:第3章 细胞的基本结构(单元复习)(必修1)08-30
魔灵召唤魔灵技能 自身体力为上限的伤害08-15
木瓜深加工项目可行性研究报告 - 图文01-28
220kV变电站设计03-29
- 元旦晚会节目单
- 学案
- 光电显示技术期末复习资料 - 图文
- p2p与供应链结合案例
- 2016--2017学年度第二学期五年级班主任工作计划
- 尔雅2017年西藏的历史和文化期末考试满分答案解析
- 智慧树创新工程实践期末考试答案
- 六年级下美术教案-有趣的纸浮雕广西版
- 设备操作规程汇编
- 通信综合实训系统实验报告
- 南京财经大学金融学期末考试简答题
- 现代服务业发展规划研究 - 图文
- 锚杆支护工知识竞赛题
- 实验五
- 债权法习题集及详细解答
- 上海寺庙大全 - 图文
- 机会成本在企业决策中的应用研究
- 高考总复习语文选择题百题精炼第一季专题01 识记现代汉语字音(教师版)
- A9785-B中文资料
- 56m连续梁主墩冷却管布置技术交底
- 安卓
- ContentProvider
- 黑马
- 程序员
- 基本
- 使用
- 教程
- 2014年中级经济师考试科目《房地产专业》章节复习讲义1-4
- 中储粮总公司发展有关问题的探讨
- 谁偷走了教师的幸福
- 大语题库1
- 左侧基底节区腔隙性脑梗塞灶的原因有哪些?
- 关于加强招商引资工作的实施意见
- 2014黑龙江省教师资格证考试幼儿综合素质练习题:逻辑思维能力(五)
- 简单蒸馏、常量法测沸点
- 选修3-3历年高考题(部分)
- 2014保险继续教育考试题附答案
- 2016届中考英语复习讲义 第17章 各种状语从句 - 图文
- 大汉手相1
- 1089111212李雪岩 - 论文 - 易趣网上玩具商城 - 图文
- 六年级小升初语文测试题含答案
- 日常考勤制度 - 图文
- 公司团委2013年换届选举工作报告
- 某市农村危房改造全覆盖大排查情况汇报
- 小学2015“护校安园”自查报告
- 2012--2013大三班上学期评语
- 人教版四年级数学上册亿以上数的认识练习题精选(108)