乐读文学

Android从入门到精通

乐读文学 > 科普学习 > Android从入门到精通

第167页

书籍名:《Android从入门到精通》    作者:明日科技


15.4.1 数据库分析

家庭理财通是一款运行在Android系统上的程序,在Android系统中,集成了一种轻量型的数据库,即SQLite,该数据库是使用C语言编写的开源嵌入式数据库,支持的数据库大小为2TB,使用该数据库,可以像使用SQL  Server数据库或者Oracle数据库那样来存储、管理和维护数据。本系统采用了SQLite数据库,并且命名为account.db,该数据库中用到了4个数据表,分别是tb_flag、tb_inaccount、tb_outaccount和tb_pwd,如图15.3所示。



图15.3 家庭理财通系统中用到的数据表

15.4.2 创建数据库

家庭理财通系统在创建数据库时,是通过使用SQLiteOpenHelper类的构造函数来实现的,实现代码如下:

private  static  final  int  VERSION  =  1;  //定义数据库版本号



private  static  final  String  DBNAME  =  "account.db";  //定义数据库名



public  DBOpenHelper(Context  context)  //定义构造函数



{



super(context,  DBNAME,  null,  VERSION);  //重写基类的构造函数,以创建数据库



}

技巧:  创建数据库时,也可以在cmd命令窗口中使用sqlite3命令打开SQLite数据库,然后使用create  database语句创建,但这里需要注意的是,在cmd命令窗口中操作SQLite数据库时,SQL语句最后需要加分号“;”。

15.4.3 创建数据表

在创建数据表前,首先要根据项目实际要求规划相关的数据表结构,然后在数据库中创建相应的数据表。

(1)tb_pwd(密码信息表)

tb_pwd表用于保存家庭理财通系统的密码信息,该表的结构如表15.8所示。

表15.8 密码信息表





字段名  数据类型  是否主键  描 述

password  varchar(20)  否  用户密码

(2)tb_outaccount(支出信息表)

tb_outaccount表用于保存用户的支出信息,该表的结构如表15.9所示。

表15.9 支出信息表





字段名  数据类型  是否主键  描 述

_id  integer  是  编号

money  decimal  否  支出金额

time  varchar(10)  否  支出时间

type  varchar(10)  否  支出类别

address  varchar(100)  否  支出地点

mark  varchar(200)  否  备注



(3)tb_inaccount(收入信息表)

tb_inaccount表用于保存用户的收入信息,该表的结构如表15.10所示。

表15.10 收入信息表





字段名  数据类型  是否主键  描 述

_id  integer  是  编号

money  decimal  否  收入金额

time  varchar(10)  否  收入时间

type  varchar(10)  否  收入类别

handler  varchar(100)  否  付款方

mark  varchar(200)  否  备注

(4)tb_flag(便签信息表)

tb_flag表用于保存家庭理财通系统的便签信息,该表的结构如表15.11所示。

表15.11 便签信息表





字段名  数据类型  是否主键  描 述

_id  integer  是  编号

flag  varchar(200)  否  便签内容





15.5 创建项目

教学录像:光盘\TM\lx\15\创建项目.exe

家庭理财通系统的项目名称为AccountMS,该项目是使用Eclipse+Android  4.0开发的,在Eclipse开发环境中创建该项目的步骤如下:

(1)启动Eclipse,单击工具栏中的按钮,或者在菜单栏中依次选择“文件”/“新建”/Android  Project命令,如图15.4所示。如果“新建”菜单中没有Android  Project子菜单,则选择“新建”/“其他”命令,在弹出的“新建”窗口中展开Android节点,选择Android  Project节点,如图15.5所示,然后单击“下一步”按钮。





图15.4 选择菜单命令  图15.5 “新建”窗口

(2)弹出New  Android  Project窗口,在该窗口中,首先输入项目名称AccountMS,并选择项目存放路径,如图15.6所示,然后单击“下一步”按钮,进入Select  Build  Target界面,从中选择Android版本,如图15.7所示。





图15.6 输入项目名称和存放路径  图15.7 选择Android版本

(3)单击“下一步”按钮,进入Application  Info界面,在Package  Name文本框中输入包名,这里输入com.xiaoke.accountsoft.activity,其他采用默认设置,如图15.8所示。



图15.8 Application  Info界面

(4)单击“完成”按钮,这样即可创建AccountMS项目。





15.6 系统文件夹组织结构

教学录像:光盘\TM\lx\15\系统文件夹组织结构.exe

在编写项目代码之前,需要制定好项目的系统文件夹组织结构,如不同的Java包存放不同的窗体、公共类、数据模型、工具类或者图片资源等,这样不但可以保证团队开发的一致性,也可以规范系统的整体架构。创建完系统中可能用到的文件夹或者Java包之后,在开发时,只需将创建的类文件或者资源文件保存到相应的文件夹中即可。家庭理财通系统的文件夹组织结构如图15.9所示。



图15.9 文件夹组织结构

说明:  从图15.9可以看出,res和assets文件夹都用来存放资源文件,但在实际开发时,Android不为assets文件夹下的资源文件生成ID,用户需要通过AssetManager类以文件路径和文件名的方式来访问assets文件夹中的文件。





15.7 公共类设计

教学录像:光盘\TM\lx\15\公共类设计.exe

公共类是代码重用的一种形式,它将各个功能模块经常调用的方法提取到公用的Java类中,例如,访问数据库的Dao类容纳了所有访问数据库的方法,并同时管理着数据库的连接、关闭等内容。使用公共类,不但实现了项目代码的重用,还提供了程序性能和代码的可读性。本节将介绍家庭理财通系统中的公共类设计。

15.7.1 数据模型公共类

在com.xiaoke.accountsoft.model包中存放的是数据模型公共类,它们对应着数据库中不同的数据表,这些模型将被访问数据库的Dao类和程序中各个模块甚至各个组件所使用。数据模型是对数据表中所有字段的封装,主要用于存储数据,并通过相应的getXXX()和setXXX()方法实现不同属性的访问原则。现在以收入信息表为例,介绍它所对应的数据模型类的实现代码,主要代码如下:

package  com.xiaoke.accountsoft.model;