Android课程设计,生活记事本

来源:互联网 发布:ubuntu 永久dns 编辑:程序博客网 时间:2024/06/14 21:39

目录

0  绪论..............................................................................................................................................1

1  系统需求分析 2

11  系统介绍 2

12  系统的功能性需求 2

13  软硬件环境需求 3

2. 系统设计 3

21  系统概述 3

22系统总体结构 3

23  开发环境的配置 3

3. 详细设计及实现 3

31  数据库系统设计 3

32  界面原型设计 3

4.系统代码编写 3

41  代码编写思路 4

42  系统主界面的实现 4

43  系统功能模块配置的实现 4

44  模块功能流程设计 4

45代码编写实现 4

5总结 4

参考文献............................................................................................................................................


摘要:Android手机占据了大部分移动的市场。手机已经深入当前人们的生活,甚至成为当前人们的生活的一部分。Android的应用于需求也不断增加。为了学习Android开发,本次以简单的生活记事本为学习例子。

关键字:生活记事本,android,eclipse

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0  绪论

   随着智能手机的不断普及,移动应用的需求与日俱增,移动应用开发成为当下最热门的技术之一。在google和android手机联盟的共同推动下,android在众多移动应用开发平台中脱颖而出。

Android操作系统是google最具杀伤力的武器之一。苹果以其天才的创新,是的iphone在全球迅速拥有了数百万忠实的”果粉”,而Android作为第一个完整,开放,免费的手机平台,使开发者在为其开发程序时拥有更大的自由。与windows mobile ,symbian等厂商不同的是,Android操作系统是免费向开发人员提供,这样可节省近三层得成本。

我们都知道,无论是产品还是技术,商业应用都是它最大的发展动力。Android如此受到厂商与开发者的青睐,它的前景是一片光明的。国内对于安卓这方面的市场还没有完全开发出来。只要我们努力学习Android,对理想,对生活都会有很大的补益。[1]

随着信息化建设的发展,网络的不断完善,电子信息的进步,电子文字输入在生活、学习、工作中占有越来越重要的作用。这种崭新的文字记录的模式也是现代信息社会发展的一大趋势,因此,电子信息记录方式也逐渐成为业内人士关注的焦点。

现在网络上各种记事本数不胜数,较为出名的有EmEditor ,UEStudio ,GridinSoft Notepad ,Notepad++,win32pad ,SkimEdit,UniRed, xint 。功能也是应有尽有,有能改变字体的,有能改变文字颜色,这些软件文字存储能量大;有的功能齐全,使用者广泛。但是,这些软件较为完善的记事软件大多存在与电脑使用,而对于手机系统所使用的记事本功能单一,且存储的安全性低、存储的种类也大多仅限文字和图片。在移动设备上,目前国内外下载量较高记事本软件有Evernote、小米便签、NoteEverything、麦库记事、有道云笔记,Gnotes,印象笔记,麦库记事,彩云笔记,为知笔记,随手写等。 [2]

因此,开发这样一套很简单的生活记事本软件对我们学习Android系统来讲是一件很有必要的事情。在完成简单的记事本软件不仅可以初步了解Android开发的基本的使用以及训练我们的开发能力,还对于我们毕业以后从事Android开发或者其他的开发奠定一定的基础。

1  系统需求分析

 

11  系统介绍

 实现基于 Android 的“生活记事本”,用户可以记录过往生活的点点滴滴,也可以把重要的事情做一个备忘,日后能提醒自己。也可以是游玩的过程中顺手拍下美好的回忆,记下时间地点,便于某些时候能进行慢慢的品味。

 

12  系统的功能性需求

本系统主要功能如下:

1) 事件类别的管理(包括增加、删除、修改)

2) 提醒类别管理(包括增加、删除和修改)

3) 事件的管理(包括增加、删除和修改),关键信息包括:事件标题、关键字、事件内容、事件时间、重要性指数、位置信息(城市、区域的信息)、照片(拍照)、是否提醒(例如:某个时间点要取钱还给某人提前一天提醒我,快到时间1个小时再次提醒;)

4) 根据事件标题、关键字、类别搜索事件的功能

 

13  软硬件环境需求

1) 开发平台 Winxp/win7/win8/win10/vista/win2003server, Eclipse 及 ADT。

2) 数据库:SQLite

3) JDK1.7 及以上

4) Android 版本 2.3.3~4.3

5) 设备:android 手机或 android 平板

2.系统设计

 

21  系统概述

生活记事本就是记录生活的点滴,用作平常琐事的备忘录,也是一个游玩过程中记录开心时刻,拍下美好回忆,方便以后回忆的的电子日记本。

具有简约的UI界面。显示事件,删除事件,新增事件以及事件查询功能。同时具有插入图片,事件提醒,位置显示功能。

    采用主流的开发软件eclipse编程软件。Google公司提供手机开发平台Android Developer专属的软件开发工具包Android SDK。以轻型SQLite为数据库,占用资源很低。

以Android4.0或者更高版本的Android系统的目标平台。

 

22系统总体结构

主界面显示事件列表。点击查询跳转到查询界面,输入插入条件,主要是标题、关键字、和类别作为查询的条件。点击主界面最下方的新增按钮,则跳转空白的编辑界面,可以输入标题,位置(默认是GPS定位),关键字,内容等,同时还可以设置提醒和拍照视频。单击某项事件则跳转事件查询界面,主要显示标题,内容,位置,编辑的时间,设置提醒的时间等。在主界面长按某个事件弹出对话框,询问是否确定删除。总体的流程结构如图图2-1。

 

 

 

                              图2-1  系统总体结构

23  开发环境的配置

 Android开发平台搭建:

一、安装包下载

(1)java JDK下载

http://java.sun.com/javase/downloads/index.jsp选择Download JDK只下载JDK,无需下载jre。

(2)Eclipse下载

进入http://www.eclipse.org/downloads我们选择第一个,即Eclipse IDE for java EE Developers。

(3)Android SDK下载

说明: Android SDK两种下载版本,一种是包含具体版本的SDK的,一种是只有升级工具,而不包含具体的SDK版本。完全版下载  (Android sdk 2.1 r01)。

二、软件安装 

(1)安装JDK

 安装完成即可。  

(2)解压Eclipse

Eclipse无需安装,解压后,直接打开就行。

(3)解压Android SDK

这个也无需安装,解压后供后面使。

(4)配置Eclipse

打开Eclipse,,在菜单栏上选择 help->Install New SoftWare点击 Add按钮,出现如下界面,输入网址: https://dl-ssl.google.com/android/eclipse/ (如果出错,请将https改成http) ,名称: Android (这里可以自定义),点击OK, 点击 Next按钮 ,点击Next按钮,出现如下界面:选择 I accept the terms of the license agreements,点击Next,进入安装插件界面安装完成后, 点击Yes按钮,重启Eclips。

(5) 配置Android SDK

点击菜单window->preferences 选择你的Android SDK解压后的目录,选错了就会报错,这个是升级工具,目前还没有一个版本的SDK。

升级SDK版本,选择单 window->Android sdk and avd manager  选择update all按钮,出现如下界面选择左边的某一项,点击accept表示安装,点击reject表示不安装,我这里只选了SDK 2.1 和samples for api 7 ,,自己可以任意自定义,确定后,选择install按钮,进入安装界面:安装完成。(由于现在google被禁用在下载SDK时需要翻墙,或者使用国外的VPN才可以更新成功)

(6)新建AVD(Android vitural device)

和上面一样,进入Android sdk and avd manager,选中Vitural Devices 在点击New按钮后, 名称可以随便取,target选择你需要的SDK版本,SD卡大小自定义,点击 Create AVD,显示创建AVD完毕。

(7) 新建Android项目

选择菜单file->new->other 进入如下界面:选择新建Android Project项目,点击Next按钮,进入如下界面名称自定义,应用程序名自定义,报名必须包含一个点以上,min SDK version里面必须输入整数

(8)配置运行

右键项目->Run as -> Run Configuration该界面,点击Browse 按钮,选择你要运行的项目选择Target 切换到以下界面该界面选择运行的AVD,将AVD前面的方框设置为选择状态。 

(9)测试项目运行右键项目名称->run as ->Android Application 即可启动运行该Android程序。[3]

搭建环境也可以参考这个博客(是图文教程):

http://blog.chinaunix.net/uid-22145625-id-3294443.html

 

3.详细设计及实现

该模块主要对生活记事本的需要使用的数据进行存储读取,主要包过事件管理表,媒体管理表,类别管理表。

采用Android系统自带的数据库SQLite进行数据的存储和读取。

31  数据库系统设计

生活记事本软件首先先创建一个notes的SQLite数据库,以及在改数据库里面设计3张表,用于存放相关数据。

1、创建数据库。在使用SQLiteOpenHelper的继承类中创建

   public NotesDB(Contextcontext) {

super(context,"notes", null, 1);

    }

2、创建事件管理表(notes):用于记录事件主要的属性。创建的代码如下。表的具体设计如表3-1。

db.execSQL("CREATE TABLE IF NOT EXISTS " +TABLE_NAME_NOTES +"(" +

            COLUMN_NAME_ID              +" INTEGER PRIMARY KEY AUTOINCREMENT," +

COLUMN_NAME_NOTE_NAME       +" TEXT    NOT NULL DEFAULT \"\"," +

            COLUMN_NAME_NOTE_CONTENT    +" TEXT    NOT NULL DEFAULT \"\"," +

COLUMN_NAME_NOTE_DATE       +" TEXT    NOT NULL DEFAULT \"\"," +

            COLUMN_NAME_NOTE_ADDRESS    +" TEXT         NOT NULL DEFAULT \"\"," +

COLUMN_NAME_NOTE_KEYWORD    +" TEXT    NOT NULL DEFAULT \"\","+

            COLUMN_NAME_NOTE_RANK       +" INTEGER NOT NULL DEFAULT 5,"+

COLUMN_NAME_NOTE_ISREMIND   +" INTEGER NOT NULL DEFAULT 0,"+

            COLUMN_NAME_NOTE_RAMINDTIME +" TEXT         NOT NULL DEFAULT \"\" ,"+")");

 

字段名

类型

长度

是否可为空

是否主键

默认值

备注

_id

Integer

 /

    否

    是

   /

事件id标识

name

text

 /

    否

    否

 “”

事件的标题

content

text

 /

    否

    否

 “”

事件的内容

date

text

 /

    否

    否

 “”

事件的时间

address

text

 /  

    否

    否

 “”

事件的地址

keyword

text

 /

    否

    否

 “”

关键字,用于查询

rank

Integer

 /

    否

    否

 “”

重要指数

isRemind

text

 /

    否

    否

 “0”

是否提醒

remindTime

text

 /

    否

    否

 “”

事件的提醒时间

                            表3-1  notes表

 

3、多媒体管理表(media):用于记录事件存放的照片或者视频的路径。创建的代码如下。表的具体设计如表3-2。

db.execSQL("CREATE TABLE IF NOT EXISTS " +TABLE_NAME_MEDIA +"(" + COLUMN_NAME_ID

+ " INTEGER PRIMARY KEY AUTOINCREMENT,"

+ COLUMN_NAME_MEDIA_PATH +" TEXT NOT NULL DEFAULT \"\","

+ COLUMN_NAME_MEDIA_OWNER_NOTE_ID

+ " INTEGER NOT NULL DEFAULT 0" + ")");

 

字段名

类型

长度

是否可为空

是否主键

默认值

备注

_id

Integer

 /

   否

  是

   /

照片,视频存储路径标识

path

text

 /

   否

  否

  “”

照片,视频存储路径

notes_id

Integer

 /

   否

  否

  0

对应的照片,视频所属的事件

                            表3-2  media表

     4、类别管理表(category):管理事件所属的类别。表的创建代码如下。具体的设计如表3-3。

db.execSQL("CREATE TABLE IF NOT EXISTS "+TABLE_NAME_CLASS +" ( "

+ COLUMN_NAME_CLASS_NAME +" TEXT PRIMARY KEY ,"

+ COLUMN_NAME_MEDIA_OWNER_NOTE_ID +" INTEGER NOT NULL DEFAULT 0 "+")");

 

字段名

类型

长度

是否可为空

是否主键

默认值

备注

class_name

text

  /

    否

   是

/

类别的名字

note_id

Integer

  /

    否

   否

0

某个事件所属的类别

                         表3-3 category表

    在生活记事本软件开发中,创建一个Notes类继承SQLiteOpenHelper助手类中创建表设计的三个表,主要的代码如下。(其中一些字段设置成常量,未显示出来)

public class NotesDBextends SQLiteOpenHelper {

public NotesDB(Contextcontext) {

super(context,"notes", null, 1);

}

@Override

public void onCreate(SQLiteDatabasedb) {//tsfayiuewgwer

db.execSQL("CREATE TABLE IF NOT EXISTS " +TABLE_NAME_NOTES +"(" +

            COLUMN_NAME_ID              +" INTEGER PRIMARY KEY AUTOINCREMENT," +

COLUMN_NAME_NOTE_NAME       +" TEXT    NOT NULL DEFAULT \"\"," +

            COLUMN_NAME_NOTE_CONTENT    +" TEXT    NOT NULL DEFAULT \"\"," +

COLUMN_NAME_NOTE_DATE       +" TEXT    NOT NULL DEFAULT \"\"," +

            COLUMN_NAME_NOTE_ADDRESS    +" TEXT         NOT NULL DEFAULT \"\"," +

COLUMN_NAME_NOTE_KEYWORD    +" TEXT    NOT NULL DEFAULT \"\","+

            COLUMN_NAME_NOTE_RANK       +" INTEGER NOT NULL DEFAULT 5,"+

COLUMN_NAME_NOTE_ISREMIND   +" INTEGER NOT NULL DEFAULT 0,"+

            COLUMN_NAME_NOTE_RAMINDTIME +" TEXT         NOT NULL DEFAULT \"\" ,"+")");

db.execSQL("CREATE TABLE IF NOT EXISTS " +TABLE_NAME_MEDIA +"(" + COLUMN_NAME_ID

+ " INTEGER PRIMARY KEY AUTOINCREMENT,"+COLUMN_NAME_MEDIA_PATH +" TEXT NOT NULL DEFAULT \"\","+ COLUMN_NAME_MEDIA_OWNER_NOTE_ID+" INTEGER NOT NULL DEFAULT 0" + ")");

db.execSQL("CREATE TABLE IF NOT EXISTS "+TABLE_NAME_CLASS +" ( "+COLUMN_NAME_CLASS_NAME +" TEXT PRIMARY KEY ,"+ COLUMN_NAME_MEDIA_OWNER_NOTE_ID +" INTEGER NOT NULL DEFAULT 0 "+")");

@Override

public void onUpgrade(SQLiteDatabasedb, int oldVersion,int newVersion) {

}

}

 

 

 

 

32  界面原型设计

   整个项目的系统功能的项目的目录结构如图3-1所示。包括显示的主界面,编辑界面,查询界面,详细显示界面。

1、主界面:

    显示事件的列表,每个列表显示事件的标题以及编辑的时间。还有时候有设置提醒。右上角有查询按钮,点击后会跳转查询界面。点击某个事件则会跳转到详细查询界面。长按某个事件则会弹回确认删除框。主界面界面设计如图3-2.                           

                                                          

      图3-1 项目的目录结构                        图3-2  主界面UI                

 

2、查询界面:

    输入查询的条件,也就是在该界面输入查询的标题、关键字、类别进行查询,然后点击右上角的查询,则在该界面的下方会显示查询的到的结果,如果没有则默认没有显示。如图3-3,则是输入标题“事件1”,查询得到结果显示在下方。                                                      

                     

                         图3-3 查询界面UI

3、编辑界面:

    在该界面可以编辑事件的标题、关键字、位置、内容等主要信息,如图3-3。在点击更多按钮后,会弹出一个菜单,里面可以设置提醒、照相,视频和重要指数信息,如图3-4。在弹出菜单中点击提醒则会弹出一个时间设置,点击确认后则是设置好了时间,如图3-5。在点击照相后,则会调用照相机,如图3-7所示。点击视频后与点击照相机也是一样的。点击重要指数设置,则会弹出一个对话框,通过设置5颗星星来表示事件的重要指数,确认后则是设置成功,如图3-8所示。在上述的编辑设置好,需要点击保存在完成编辑,否则默认是未编辑成功的。保存后则会自动跳转到主界面,在主界面此时则会显示一条新的事件。                            

                   

   


4、显示界面:

    主要是显示与 事件先关的一些属性,如标题,内容,编辑的事件,地点。以及对事件的一些编辑,如关键字,重要指数,是否设置提醒以及提醒的时间。左上角是返回主界面的返回键,右上角是进入编辑界面的按钮。整个界面显示如图3-9。

 

                           

                                    图 3-9  显示界面

 

4.系统代码编写

 

41  代码编写思路

1、现根据界面设计,尽量现把对应的配置文件写好,至少需要将主要的功能模块的配置文件写好,在后续的编写中也可能需要不断修改这些配置文件。思考需要使用的控件,以及找到所需要使用的UI素材。 在编写界面的配置文件时,需要仔细调整各个控件的位置,布局美观,颜色搭配等。达到界面简约,用户使用感觉顺心。

2、数据库类的编写。包括在继承数据助手类数据库的创建,以及生活记事本需要使用的数据表的创建。另外编写一个数据库的操作类。包过各个模块对数据进行的操作方法。有数据插入,更新,删除和查询方法。

3、逐渐实现生活记事本的各个模块功能。(1)先从主界面实现,主界面也只要是显示事件列表,使用listView控件。通过配置文件显示每个事件的显示信息,显示事件的标题,编辑事件,如果事件有设置提醒,则显示出一个闹钟的图片。接着编写监听事件。监听查询和新增按钮。然后监听listView事件点击事件。获得监听到的是项,单击监听事件,进入事件信息详细显示界面。重写按钮监听事件,长按弹出删除事件的确认对话框。主要实现listView的item的监听,界面的跳转,以及界面跳转的信息传递,数据库的数据查询,删除。还需要将各个方法放在适合的位置。(2)查询模块。相对于比较简单。通过配置文件显示查询界面信息,调用数据库的查询,查询的结果保存到cursor中,通过listView的适配器显示出查询的结果。(3)事件详细显示模块。该界面也是相对简单。主要也是通过配置文件,设置好需要显示信息的位置。通过从主界面通过Intent传递过来的信息取出放到对应的位置控件。还有就是返回和编辑这两个事件的监听,实现界面的跳转。(4)事件编辑模块。通过从事件显示模块传递信息到该界面,其中该界面是重复利用新增事件界面,将对应的信息先显示在对应的编辑框中。还有需要对返回,保存和更多按钮的监听。在监听到更多按钮的时候弹出一个菜单。里面继续监听提醒,照相,视频以及重要指数的事件。在监听提醒,则弹出提醒时间设置框。监听到照片和视频事件,则调用系统的照相和视频。在监听重要指数则弹出对话框设置重要指数。在监听保存按钮后,则将读取编辑修改信息更新数据库的记录。(5)事件新增模块。总体与事件编辑模块相同。不同之处在于各个输入框是设置为空的,但是位置设置默认调用地位SDK显示当前的位置。

4、将各个功能模块界面UI进行进一步修改。

 

 

42  系统主界面的实现

下面是具体实现后的界面显示。总体界面的完成于原来设计的界面基本上一样,在原来的设计上修改一些UI。在主界面显示事件列表,如图4-1。在长按某个事件后,弹出删除确认的对话框,如图4-2所示。

                 

                      

43  系统功能模块配置的实现

生活记事本的各个功能模块配置实现结果。包括查询模块,内容显示模块,新增事件模块,事件编辑模块。

查询模块中,输入在标题输入框中输入“t”后,关键字和类别为空,然后点击右上角的查询按钮后,在下方显示查询得到的结果,查询得到的结果包括两条以“title”的事件,但是它们编辑的时间是不同的,如图4-3所示。

显示模块,在单击主界面的事件列表后即可跳转到该界面。在该界面可以显示出,事件编辑的详细信息,显示事件的标题,位置,时间,关键字,重要指数,是否设置提醒和内容等主要事件信息,如图4-4所示。

新增事件模块,在点击主界面的下方新增按钮,则会跳转该界面。可以再改界面输入事件的标题,关键字,位置和内容。其中位置通过定位默认显示当前的位置,当然也可以通过修改位置信息,改成自己喜欢的位置,如图4-5所示。在需要编辑其他事件信息,则需要点击更多按钮后才会显示,包括提醒,照相,视频等,如图4-7所示。在设置提醒的时候则会弹出事件设置对话框,设置时间。弹出的对话框的时间显示为当前时间。设置提醒后会出现通知,(gvsdhsdhfdsfds)

编辑事件模块,与新增事件模块的界面使用是相同的,只是在显示前先将从现实模块对应的事件信息显示对应的编辑框中,如图4-6所示。

                         


44  模块功能流程设计

 

45代码编写实现

 

 


 

 

 

 

 

 

参考文献:

[1]http://wenku.baidu.com/link?url=rICkiAgNBLJlY1gU4yPToqKdFvc97ztpjxQWdMoCA7jRoV1UvqoanVJ4YNUQhCiqWaTd1Q_K6gjnTRq8erz2WbM4N_iSRiEP4ZLMaXgDSAa

[2]http://wenku.baidu.com/link?url=N_AG05QF6sTvQNuZI20h3G7PxXEDQ3ErRHDpk9jl6E4Wf8rc3zjLhtJ6iy-eW3R07nLhZjMv8TSftIkDMtIqbselJg5V3MldEe7TnUUq1-S

[3]http://wenku.baidu.com/link?url=SD7BJ4eZI34EmejiN4t2LbmOURaFUNeijfniPuFkCVgnGrG870a3-ws6ft6HoaLGQUggAzsuvLM4j3oV01WMWQ5B0kh4zh2ypc5QRx5fjo_###

 

 

 

 

 

0 0
原创粉丝点击