乐学成语——第一部分
来源:互联网 发布:php手机网页游戏源码 编辑:程序博客网 时间:2024/04/29 00:30
1. 先做好基础工作把数据库导入到项目工程中,这是第一步。
(1)我们知道android的数据库存放在/data/data/package name/目录下,所以我们需要做的是把已有的数据库传入到那个目录下。思路是用FileInputStream读取原数据库,再用FileOutputStream把读到的东西写入到那个目录。这样就可以方便的操作数据库了。在res目录下新建raw目录,将idioms.db数据库复制到此目录下,这是因为raw目录中的东西,android会原封不动的拷贝到程序中,而不会转换成二进制文件。在db包下创建一个DBOpenHelper类。代码实现的功能主要是使用输入输出流将idioms.db复制到手机中默认存放数据库的位置。
在这块需要注意的是路径问题
<span style="font-family:KaiTi_GB2312;font-size:18px;"><span style="font-family:KaiTi_GB2312;font-size:18px;"><strong><strong>public static final String DB_PATH="/data"+Environment.getDataDirectory().getAbsolutePath()+"/"+PACKAGE_NAME+"/databases";//在手机里存放数据库的位置</strong></strong></span></span>
在创建这个类时,这块出错了,我以为是字符串连接,但是搞错了。导致android无法原封不动的拷贝到程序中,实际上是在/data/data/package name/目录下,PACKAGE_NAME存放应用的包名,getDataDirectory得到数据库记录。
究竟有没有复制成功还缺少一个环节,搭建单元测试环境,测试数据库有没有创建到指定的路径下面。
(2)首先修改AndroidMainfest.xml文件搭建起单元测试的环境。插入这段代码,单元环境就搭建起来了。
<span style="font-family:KaiTi_GB2312;font-size:18px;"><span style="font-family:KaiTi_GB2312;font-size:18px;"><strong><application android:allowBackup="true" android:icon="@drawable/logo" android:label="@string/app_name" android:theme="@style/AppTheme" > <uses-library android:name="android.test.runner" /> </strong></span></span>
<span style="font-family:KaiTi_GB2312;font-size:18px;"><span style="font-family:KaiTi_GB2312;font-size:18px;"><strong><application></strong></span></span>
<span style="font-family:KaiTi_GB2312;font-size:18px;"><span style="font-family:KaiTi_GB2312;font-size:18px;"><strong><instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="cn.edu.bztc.happyidiom" > </instrumentation></strong></span></span>
(3)在test包下,新建DBOpenHelperTest继承AndroidTestCase。
<span style="font-family:KaiTi_GB2312;font-size:18px;"><span style="font-family:KaiTi_GB2312;font-size:18px;"><strong>package cn.edu.bztc.happyidiom.test;import cn.edu.bztc.happyidiom.db.DBOpenHelper;import android.test.AndroidTestCase;public class DBOpenHelperTest extends AndroidTestCase{public void testDBCopy(){DBOpenHelper dbOpenHelper=new DBOpenHelper(getContext());dbOpenHelper.openDatabase();}}</strong></span></span>
该类中只封装了一个方法,测试方法通常命名为test***()。该方法调用了DBOpenHelper类里面定义的openDatase()方法。运行出现这种情况即可
看看数据库有没有复制成功,切换到DDMS。
2.(1) 在entity包下新建一个Animal类。实体类的内容非常简单,基本就是生成数据库表对应字段的set和get方法。
(2)在dao包下创建一个AnimalDao类。在此需要注意的是在animal调用set方法时把解释的一层落下了。
<span style="font-family:KaiTi_GB2312;font-size:18px;"><span style="font-family:KaiTi_GB2312;font-size:18px;"><strong>animal.setExplain(cursor.getString(cursor.getColumnIndex("explain")));</strong></span></span>
AnimalDao是一个单例类,我们将他的构造方法私有化,并提供了一个getInstance()方法来获取AnimalDao的实例,保证全局范围内只会有一个AnimalDao实例,在AnimalDao中提供了一个方法getAllAnimals()该方法用来获取所有的动物类成语。
(3)编写单元测试类AnimalDaoTest继承AndroidTestCase。运行出现这种情况即可
- 乐学成语——第一部分
- 乐学成语——第二部分
- 乐学成语——第三部分
- 乐学成语——第四部分
- 乐学成语——显示每个成语的详细信息
- 乐学成语——数据库操作
- 乐学成语——导入篇
- 乐学成语——完整实现
- 乐学成语——显示所有动物类成语的列表
- 乐学成语——显示所有动物类成语的列表
- 乐学成语——显示每条成语的详细信息
- 乐学成语——显示学习列表
- 乐学成语——创建数据库和表
- 乐学成语——显示主界面
- 乐学成语——显示学习列表
- 乐学成语——数据库创建(导入、打开)
- 乐学成语——android(一)
- 乐学成语——ListView中ImageButton焦点冲突
- AFNetworking实现上传
- 剑指offer(四十二)之左旋转字符串
- linux编程——文件操作1
- Adafruit公司2015年最棒的开源可穿戴设备
- Android之系统服务-WindowManager
- 乐学成语——第一部分
- 提供一个解决unrecognized selector错误的宏定义,所有类都不会触发unrecognized selector错误 —
- 汇编程序员之代码风格指南
- redis-集群重启
- wxpython实现图灵机器人的GUI-Python
- filename.whl is not supported wheel on this platform
- 回忆多项式解析运算思路
- Bootstrap是什么,Bootstrap里的文件分别表示什么?都有什么用?
- JDBC的简介及操作