第一范文网 - 专业文章范例文档资料分享平台

黑马程序员安卓教程:ContentProvider 基本使用

来源:用户分享 时间:2020-06-22 本文由没有退路 分享 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

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数据库初始化完成

搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新幼儿教育黑马程序员安卓教程:ContentProvider 基本使用 全文阅读和word下载服务。

黑马程序员安卓教程:ContentProvider 基本使用 .doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/wenku/1094439.html(转载请注明文章来源)
热门推荐
Copyright © 2018-2022 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top