Android乐学成语的实现分析

Android乐学成语的实现分析

 

下面是效果图

 

 

目录工程如下:

 

具体实现以及写的过程中遇到的问题

第一步:建立数据库,像这种比较繁多的数据,可以用execl表格来做,然后Navict可视化工具,导入进去

加载数据数据库到项目中来,在res目录下建立一个raw文件夹, 

DBOpenHelper.java

package cn.deu.bztc.happyidiom.db;

import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;

import cn.deu.bztc.happyidiom.activity.R;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.os.Environment;

public class DBOpenHelper {
	private final int BuFFWER_SIZE=400000;//缓冲区大小
	public static final String DB_NAME="idioms.db";//保存的数据库文件名
	public static final String PACKAGE_Name="cn.deu.bztc.happyidiom.activity";
	//应用的包名
	public static final String DB_PATH="/data"
			+Environment.getDataDirectory().getAbsolutePath()+"/"
			+PACKAGE_Name+"/databases";//在手机里存放数据库的位置
	private Context context;
	public DBOpenHelper(Context context) {
		super();
		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);
				FileOutputStream fos=new FileOutputStream(dbfile);
				byte[] buffer=new byte[BuFFWER_SIZE];
				int count=0;
				while((count=is.read(buffer))>0){
					fos.write(buffer, 0, count);
				}
				fos.close();
				is.close();
			}
			SQLiteDatabase db=SQLiteDatabase.openOrCreateDatabase(dbfile, null);
			return db;
		}catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}
		return null;
	}
}

上面的代码实现功能主要是使用输入输出流将idioms.db复制到手机中默认存放 数据库的位置

下面我们来测试一下是否成功

在AndroidManifest.xml中建立单元测试环境

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="cn.deu.bztc.happyidiom.activity"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="17"
        android:targetSdkVersion="17" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/l
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值