<span style="font-size:32px;"> 首先在eclipse中新建一个Android项目,项目名叫做HappyIdiom,包名叫做cn.edu.bztc.happyidiom,使用的是4.4的API,为了要让项目能够有更好的结构,这里需要在com.edu.bztc.happyidiom包下再新建几个包,如图所示:</span>
其中activity包用于存放所有活动有关的代码,db包用于存放所有数据库相关的代码,entity包用于存放所有实体相关的代码,dao包用于存放数据操作相关的代码,util包用于存放所有工具相关的代码。ADT帮我们自动生成的MainActivity和activity_main.xml文件就不需要了,这里直接将它们删除掉。创建好数据库后,首先在res目录下新建raw目录,将idioms.db数据库复制到此目录下。这是因为raw目录的东西,android会原封不动的拷贝到程序中,而不会转换为二进制文件,在db 包下新建一个DBOpenHelper类,代码如下所示:
/**
* 实现将数据库文件从raw目录拷贝到手机里存放数据库的位置
*
* @author 源
*/
public class DBOpenHelper {
private final int BUFFER_SIZE = 400000;// 缓冲区大小
public static final String DB_NAME = "idioms.db";// 保存的数据库文件名
public static final String PACKAGE_NAME = "cn.edu.bztc.happyidiom";// 应用的包名
public static final String DB_PATH = "/data"
+ Environment.getDataDirectory().getAbsolutePath() + "/"
+ PACKAGE_NAME + "/databases";// 在手机里存放数据库的位置
private Context context;
public DBOpenHelper(Context context) {
this.context = context;
}
public SQLiteDatabase openDatabase() {
try {
File myDataPath = new File(DB_PATH);
if (!myDataPath.exists()) {
myDataPath.mkdirs();// 如果没有这个目录则创建
}
String dbfile = myDataPath + "/" + DB_NAME;
if (!(new File(dbfile).exists())) {// 判断数据库文件是否存在,若不存在则执行导入,否则直接打开数据库
InputStream is = context.getResources().openRawResource(R.raw.idioms);