Android课程设计,生活记事本
目录
0 绪论..............................................................................................................................................1
1 系统需求分析 2
1.1 系统介绍 2
1.2 系统的功能性需求 2
1.3 软硬件环境需求 3
2. 系统设计 3
2.1 系统概述 3
2.2 系统总体结构 3
2.3 开发环境的配置 3
3. 详细设计及实现 3
3.1 数据库系统设计 3
3.2 界面原型设计 3
4.系统代码编写 3
4.1 代码编写思路 4
4.2 系统主界面的实现 4
4.3 系统功能模块配置的实现 4
4.4 模块功能流程设计 4
4.5 代码编写实现 4
5总结 4
参考文献............................................................................................................................................
随着智能手机的不断普及,移动应用的需求与日俱增,移动应用开发成为当下最热门的技术之一。在google和android手机联盟的共同推动下,android在众多移动应用开发平台中脱颖而出。
实现基于 Android 的“生活记事本”,用户可以记录过往生活的点点滴滴,也可以把重要的事情做一个备忘,日后能提醒自己。也可以是游玩的过程中顺手拍下美好的回忆,记下时间地点,便于某些时候能进行慢慢的品味。
本系统主要功能如下:
1) 事件类别的管理(包括增加、删除、修改)
2) 提醒类别管理(包括增加、删除和修改)
3) 事件的管理(包括增加、删除和修改),关键信息包括:事件标题、关键字、事件内容、事件时间、重要性指数、位置信息(城市、区域的信息)、照片(拍照)、是否提醒(例如:某个时间点要取钱还给某人提前一天提醒我,快到时间1个小时再次提醒;)
4) 根据事件标题、关键字、类别搜索事件的功能
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.系统设计
生活记事本就是记录生活的点滴,用作平常琐事的备忘录,也是一个游玩过程中记录开心时刻,拍下美好回忆,方便以后回忆的的电子日记本。
具有简约的UI界面。显示事件,删除事件,新增事件以及事件查询功能。同时具有插入图片,事件提醒,位置显示功能。
采用主流的开发软件eclipse编程软件。Google公司提供手机开发平台Android Developer专属的软件开发工具包Android SDK。以轻型SQLite为数据库,占用资源很低。
以Android4.0或者更高版本的Android系统的目标平台。
2.2 系统总体结构
主界面显示事件列表。点击查询跳转到查询界面,输入插入条件,主要是标题、关键字、和类别作为查询的条件。点击主界面最下方的新增按钮,则跳转空白的编辑界面,可以输入标题,位置(默认是GPS定位),关键字,内容等,同时还可以设置提醒和拍照视频。单击某项事件则跳转事件查询界面,主要显示标题,内容,位置,编辑的时间,设置提醒的时间等。在主界面长按某个事件弹出对话框,询问是否确定删除。总体的流程结构如图图2-1。
图2-1 系统总体结构
Android开发平台搭建:
一、安装包下载
(1)java JDK下载
在Java Downloads | Oracle选择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)。
二、软件安装
点击菜单window->preferences 选择你的Android SDK解压后的目录,选错了就会报错,这个是升级工具,目前还没有一个版本的SDK。
(6)新建AVD(Android vitural device)
(9)测试项目运行右键项目名称->run as ->Android Application 即可启动运行该Android程序。[3]
http://blog.chinaunix.net/uid-22145625-id-3294443.html
3.详细设计及实现
该模块主要对生活记事本的需要使用的数据进行存储读取,主要包过事件管理表,媒体管理表,类别管理表。
采用Android系统自带的数据库SQLite进行数据的存储和读取。
生活记事本软件首先先创建一个notes的SQLite数据库,以及在改数据库里面设计3张表,用于存放相关数据。
1、创建数据库。在使用SQLiteOpenHelper的继承类中创建
public NotesDB(Context context) {
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 NotesDB extends SQLiteOpenHelper {
public NotesDB(Context context) {
super(context, "notes", null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {//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(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
3.2 界面原型设计
整个项目的系统功能的项目的目录结构如图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.系统代码编写
1、现根据界面设计,尽量现把对应的配置文件写好,至少需要将主要的功能模块的配置文件写好,在后续的编写中也可能需要不断修改这些配置文件。思考需要使用的控件,以及找到所需要使用的UI素材。 在编写界面的配置文件时,需要仔细调整各个控件的位置,布局美观,颜色搭配等。达到界面简约,用户使用感觉顺心。
2、数据库类的编写。包括在继承数据助手类数据库的创建,以及生活记事本需要使用的数据表的创建。另外编写一个数据库的操作类。包过各个模块对数据进行的操作方法。有数据插入,更新,删除和查询方法。
3、逐渐实现生活记事本的各个模块功能。(1)先从主界面实现,主界面也只要是显示事件列表,使用listView控件。通过配置文件显示每个事件的显示信息,显示事件的标题,编辑事件,如果事件有设置提醒,则显示出一个闹钟的图片。接着编写监听事件。监听查询和新增按钮。然后监听listView事件点击事件。获得监听到的是项,单击监听事件,进入事件信息详细显示界面。重写按钮监听事件,长按弹出删除事件的确认对话框。主要实现listView的item的监听,界面的跳转,以及界面跳转的信息传递,数据库的数据查询,删除。还需要将各个方法放在适合的位置。(2)查询模块。相对于比较简单。通过配置文件显示查询界面信息,调用数据库的查询,查询的结果保存到cursor中,通过listView的适配器显示出查询的结果。(3)事件详细显示模块。该界面也是相对简单。主要也是通过配置文件,设置好需要显示信息的位置。通过从主界面通过Intent传递过来的信息取出放到对应的位置控件。还有就是返回和编辑这两个事件的监听,实现界面的跳转。(4)事件编辑模块。通过从事件显示模块传递信息到该界面,其中该界面是重复利用新增事件界面,将对应的信息先显示在对应的编辑框中。还有需要对返回,保存和更多按钮的监听。在监听到更多按钮的时候弹出一个菜单。里面继续监听提醒,照相,视频以及重要指数的事件。在监听提醒,则弹出提醒时间设置框。监听到照片和视频事件,则调用系统的照相和视频。在监听重要指数则弹出对话框设置重要指数。在监听保存按钮后,则将读取编辑修改信息更新数据库的记录。(5)事件新增模块。总体与事件编辑模块相同。不同之处在于各个输入框是设置为空的,但是位置设置默认调用地位SDK显示当前的位置。
4、将各个功能模块界面UI进行进一步修改。
下面是具体实现后的界面显示。总体界面的完成于原来设计的界面基本上一样,在原来的设计上修改一些UI。在主界面显示事件列表,如图4-1。在长按某个事件后,弹出删除确认的对话框,如图4-2所示。
生活记事本的各个功能模块配置实现结果。包括查询模块,内容显示模块,新增事件模块,事件编辑模块。
查询模块中,输入在标题输入框中输入“t”后,关键字和类别为空,然后点击右上角的查询按钮后,在下方显示查询得到的结果,查询得到的结果包括两条以“title”的事件,但是它们编辑的时间是不同的,如图4-3所示。
显示模块,在单击主界面的事件列表后即可跳转到该界面。在该界面可以显示出,事件编辑的详细信息,显示事件的标题,位置,时间,关键字,重要指数,是否设置提醒和内容等主要事件信息,如图4-4所示。
新增事件模块,在点击主界面的下方新增按钮,则会跳转该界面。可以再改界面输入事件的标题,关键字,位置和内容。其中位置通过定位默认显示当前的位置,当然也可以通过修改位置信息,改成自己喜欢的位置,如图4-5所示。在需要编辑其他事件信息,则需要点击更多按钮后才会显示,包括提醒,照相,视频等,如图4-7所示。在设置提醒的时候则会弹出事件设置对话框,设置时间。弹出的对话框的时间显示为当前时间。设置提醒后会出现通知,(gvsdhsdhfdsfds)
编辑事件模块,与新增事件模块的界面使用是相同的,只是在显示前先将从现实模块对应的事件信息显示对应的编辑框中,如图4-6所示。
参考文献:
[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_###
下载参考:
链接:百度网盘 请输入提取码
提取码:ttai
源码和app案例
Android课程设计,生活记事本相关推荐
- Java课程设计-日历记事本
#Java课程设计-日历记事本 ##日历记事本 要求:带有日程提醒功能的日历(数据库可采用Access.SQL Server或者MySQL). (1)显示信息:用户可以向前翻页查询前一个月的日期,也可 ...
- Android课程设计--网上购物商城
Android的特征: 提供访问硬件的API函数,简化访问过程等 具有自己的运行时和虚拟机 提供了丰富的界面控件供使用者之间调用,加快用户界面的开发速度,保证Android平台上程序界面的一致性 提供 ...
- Android课程设计(健康管理软件开发)
Android 课程设计 Android开发使用软件(RecyclerView+ListView+SQLite) 一个实用的健康管理软件,可以查询各种食物的热量,每天健身打卡,发表动态,可以点击图片链 ...
- java课程设计日历记事本_《Java程序设计》课程设计日历记事本.doc
<Java程序设计>课程设计日历记事本 PAGE PAGE 2 本科生课程设计 课程名称 Java程序设计课程设计 课程编号 j1620011 题目 日历记事本 学号 2008116222 ...
- java课程设计日历_java课程设计日历记事本赵锐.doc
java课程设计日历记事本赵锐.doc 2本科生课程设计课程名称JAVA程序设计课程设计题目日历记事本学号201440930252学生姓名赵锐所在专业2014计算机学院所在班级信工2班成绩课程设计时间 ...
- 音频播放器android课程设计,Android课程设计:Android音乐播放器的设计与实现
内容简介: Android课程设计:Android音乐播放器的设计与实现,共21页,7729字,附源程序等. 摘要:本文主要介绍了一个基于Andriod的音乐播放器的设计与实现.主要包括可行性分析,需 ...
- Android课程设计大作业-音乐播放器
Android课程设计大作业-音乐播放器 一.**主要实现界面效果** 1)登录界面 2)音乐列表界面 3)音乐播放界面 二.**系统设计** 1)使用Service播放音乐 2) 前台界面(Acti ...
- Android课程设计本地游戏厅app开发(已开源)
Android课程设计本地游戏厅app开发(已开源) 见链接
- Android课程设计倒计时app,单片机课程设计-可调倒计时器.doc
PAGE PAGE 2 课 程 设 计 设计名称 单片机可调倒计时器 全套设计加扣?3012250582 学年学期 2013 -2014学年第 二 学期 课程名称 单片机原理及应用 专业年级 电气11 ...
- java记事本课程设计,java记事本课程设计
java记事本课程设计 一. 设计内容和要求1. 设计一个具有 GUI 界面的记事本 含有简单的文字编辑功能 如 剪切.复制.粘贴.删除 还能实现保存.另存为.设置字体和颜色等功能.2. 本程 ...
最新文章
- 02 | 高性能 IO 模型:为什么单线程 Redis 能那么快?
- 五大原则之----里氏替换原则(LSP)
- [SDK2.2]SQL Azure (13) Azure的两种关系型数据库服务:SQL Azure与SQL Server VM的不同
- 6a标准 api_机油最新最高标准来了!SN不再是最高标准!车主不要加错机油了!...
- 有多个正整数存放在数组中,编写一个函数要求偶数在左边由小到大顺序放置,奇数在右边,也是由小到大顺序放置,Java实现...
- jdk环境变量的配置与练习
- 电大系统服务器的性能测试报告表,湖南电大校教职工绩效管理系统的设计与实现...
- 什么是用户故事 (User Story)?
- linux内核学习资料总结
- 投资学U20 期权市场与交易策略 习题解读
- 企业内的ITSM软件/ITIL流程管理系统与OA系统有什么区别和关系?
- 可喜可贺,暴雪即将收购第一家工作室Proletariat,魔法吃鸡停运
- 分别用雅可比(Jacobi)迭代法和高斯—塞德尔(Gauss—Seidel)迭代法求解线性方程组
- 快速删除word书签
- 8.7 Meta learning元学习全面理解、MAML、Reptile
- 学生学号判断专业班级
- Linux基础之 getopts
- 技术思维VS管理思维
- 使用XXLjob中间件进行定时任务的管理
- Laravel9+Layui实现的低代码开发平台