
基于OphoneSDK15的英文电子词典的实现.doc
11页基于OPhone SDK1.5的英文电子词典的实现OPhone平台开发, 2009-12-07 11:06:42 标签 : 英文词典是中经常使用的应用因此,在本文将结合中国移动最新的OPhone SDK1.5来讨论如何实现一个OPhone版的英文词典实现英文词典的方法很多在本文使用了SQLite数据库来保存英文单词信息系统通过SQLite数据库中保存的单词信息来查找到与指定英文对应的中文信息当然,实现这样一个英文词典需要解决一系列技术问题例如,如何将保存英文单词信息的数据库文件随程序(apk文件)一起发布;发布后如何打开数据库;如何在输入前几个字母后,在AutoCompleteTextView组件提示列表中显示以所输入字符串开头的所有单词在本章将逐渐给出这些问题的详细答案 关于本文实现的英文电子词典的完整代码请读者参本文提供的源代码 · 电子词典的程序结构 本文实现的电子词典可以从数据库中查找单词的中文解释程序的界面由一个AutoCompleteTextView和一个Button组成,这两个组件在main.xml文件中定义,代码如下:1. 2.
在该类的onCreate方法中装载了main.xml文件 · 如何建立SQLite数据库 在本例中提供了一个dictionary.db数据库文件,该数据库中包含了一个t_words表,在这个表中保存了英文单词的相关信息但这个数据库是事先建立的,在本节将介绍一下如何在PC上建立这个数据库文件及t_words表SQLite数据库是一个开源免费的数据库,支持多种数据库接口Ophone系统正是使用了这种数据库作为其优秀的数据存储方案建立SQLite数据库的工具很多,例如,SQlite官方提供了一个控制台程序,可以建立并维护SQLite数据库工具,读者可以从如下的地址下载这个控制台程序: 目前这个程序的最新版本是3.6.2,读者可以下载Sqlite-3_6_20.zip文件,解压后只有一个sqlite3.exe文件,启动这个文件,即可进入控制台界面 如果想建立一个数据库,只需要输入如下命令即可:1. sqlite3.exe dictionary.db sqlite3.exe dictionary.db 这时控制台程序还不会立即生成dictionary.db文件,直到输入一条与数据库相关的命令后,才会在当前目录生成一个dictionary.db,例如,输入如下的SQL语句建立一个表:1. create table table1 ( 2. id integer primary key, 3. age int, 4. name text 5. ); create table table1 ( id integer primary key, age int, name text ); 虽然sqlite3.exe可以很容易地生成并管理数据库,但毕竟是控制台程序,使用起来很不方便。
因此,在这里作者介绍一种可视化的管理SQLite数据库的工具:SQLite Expert Professional这种工具有些类似于SQL Server的企业管理器,可以可视化地建立数据库、表、视图等数据库组件SQLite Expert Professional的主界面 读者可以从如下的地址下载SQLite Expert Professional 下面我们来使用SQLite Expert Professional建立一个dictionary.db数据库,并建立一个t_words表,结果如图5所示通过图5中的Design标签页可以修改t_words表的结构,例如,添加、删除字段等 从图5所示的表结构可以看出,t_words有两个字段:english和chinese,分别用来保存英文单词和中文解释信息最后就需要我们向t_words表中添加等查找的单词信息了至于这些信息,读者可以在网上查找或自己输入,在本例中只提供了大学英语4级(CET4)的大纲词汇由于本文的目的只是介绍如何编写一个基于OPhone SDK1.5的电子词典,因此,关于t_words表中实际的英文单词信息读者可以根据自己的需要添加。
· 如何处理电子词典中的数据库文件 在上一节已经介绍了如何建立本例所使用的dictionary.db数据库和t_words表,那么在建立完dictionary.db数据库文件,并添加相应的数据后,需要将这个文件放在Eclipse工程的res\raw目录中与apk文件一起发布但在这里有一个问题就是这个数据库文件被放在了res\raw目录中同apk文件一起发布那么如何在安装apk后打开并使用这个数据库文件呢? OPhone SDK不能直接打开res\raw目录中的数据库文件,不过我们可以通过将这个文件复制到内存或SD卡上来访问复制的方法也很简单,就是在程序第一次启动时判断要复制的目标路径是否存在该数据库文件,如果不存在该数据库文件,那先复制这个文件,然后再打开数据库文件 复制数据库文件可以通过getResources().openRawResource方法获得res\raw目录中资源的InputStream对象,然后将该InputStream对象中的数据写入其他的目录中相应文件中打开数据库可以使用SQLiteDatabase.openOrCreateDatabase方法来打开SQLite数据库文件。
openOrCreateDatabase方法可以打开任意目录下的数据库文件 复制和打开数据库文件的工作由openDatabase方法来完成,这个方法的完整代码如下: 1. 2.












