Android备忘录的设计与实现_第1页
Android备忘录的设计与实现_第2页
Android备忘录的设计与实现_第3页
Android备忘录的设计与实现_第4页
Android备忘录的设计与实现_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、    android备忘录的设计与实现    朱建明摘要: android手机备忘录能给用户带来方便的体验。手机备忘录需要具备记事的添加、保存、浏览、删除等功能。使用android adt集成开发环境与java语言进行备忘录的设计,用xml文件定义界面, 在activity中呈现界面,利用intent技术实现页面跳转,使用sqlite数据库保存事项的编辑时间、内容,对数据表进行查询,将查询结果以列表形式顯示在备忘录列表视图界面,并实现了单条事项编辑及删除功能。关键词:备忘录;android;类;事件处理;接口:tp393 :a:1009-3044(20

2、19)09-0067-04abstract: android phone memo can bring a convenient experience to users. the mobile phone memo needs to have the functions of adding, saving, browsing, and deleting notes. use android adt integrated development environment and java language to design memo, define interface with xml file

3、, present interface in activity, use intent technology to realize page jump, use sqlite database to save the editing time and content of the item, query the data table , the query results are displayed in a list form on the memo list view. and the single item editing and deletion function has been i

4、mplemented.key words:memo; android; class; event processing; interface1 概述当今时代电子技术飞速发展,诞生了一代又一代手机。手机在人们的生活中成为不可缺少的必需品。目前的手机操作系统中,android系统占据了半壁江山。1.1 android系统简介android是一种操作系统,它是基于linux的,具有开放性,android联盟允许任何移动终端厂商加入,主要使用于移动设备,如智能手机和平板电脑,由google(谷歌)公司和开放手机联盟领导及开发,android已经在手机市场中占据90%左右份额。目前最新版本是 andro

5、id 9.0pie。1.2 sqlite数据库简介sqlite是一款轻型的关系型数据库管理系统,它包含在一个相对小的c库中。它的设计目标是嵌入式的,目前已经在很多嵌入式产品中使用,在嵌入式设备中它占用资源很低,可能只需要几百k的内存,处理速度快。1.3手机备忘录简介现在的手机需要具备上网、照明、拍照、计算等功能,还需要有记事的功能。手机备忘录能够让用户随时记录生活工作中发生的重要事件,记录下未来要做的事。开发android平台上的备忘录十分必要。1.4 设计目标实现备忘录的基本功能:添加事项的标题、内容并保存;列表显示出已保存的所有事项;修改、删除事项等。在手机备忘录app开发完成后,经过打包

6、签名,可运行在andriod4.4及其以上版本。1.5 开发环境和目标平台1.5.1开发环境1)java开发工具,jdk1.7。2)sqlite数据库。3)集成开发环境,eclipse ide for java ee develops。4)android sdk 及其eclipse开发插件adt。1.5.2目标平台手机备忘录app开发完成后,经过打包签名,可运行在目前市场上所有的android手机上。2功能分析android手机备忘录是为android用户提供记事功能的项目,其目标是实现添加、编辑并保存事项,以及对已添加事件的操作,如查看、修改、删除等。在该应用的构建中要用到sqlite数据存

7、储技术。总体功能框架如图1所示。各模块功能如下:列表显示事项:把所有已保存过的事项以列表形式在备忘界面上显示出来,可供用户选择。修改事项:用户在列表界面选择某个事项后便全屏显示该事项内容,同时可对该事项进行修改。删除事项:用户在列表界面长按某事项,可以实现对多个选定事项的删除。增加事项:单击加号按钮,可以增加事项并保存。3数据库设计使用sqlite数据库管理系统,使用sqlite expert professional 5建立数据库和数据表再将数据库导入系统中。本数据库名为notesdb,只设计一张数据表,名为notes,用于保存事项信息。数据表结构如下:4界面设计该项目需要在res目录下新建

8、三个xml布局文件,分别是notelist.xml、noteedit.xml 、notetiaomu.xml。notelist.xml是列表显示界面,noteedit.xml是事项编辑界面,notetiaomu.xml是单条事项显示界面,用来控制列表项显示格式。5 功能实现5.1定义数据库类定义创建数据库的类notesdb,继承自 sqliteopenhelper。5.1.1 定义常量定义字符串常量分别代表数据表名、事项id号、事项内容、更新日期。5.1.2 重写构造方法notesdb(context context)通过super调用父类的构造方法。5.1.3 重写方法oncreate(sq

9、litedatabase db)先将创建数据表的命令保存到字符串对象sql中,再通过执行db.execsql(sql)实现数据表的创建。5.1.4重写onupgrade(sqlitedatabase arg0, int arg1, int arg2)该方法体为空语句。5.2列表显示功能实现定义activity的子类 notemainactivity并实现接口onscrolllistener、onitemclicklistener和onitemlongclicklistener,分别重写接口中的所有方法,以实现列表滚动、单击条目和长按条目的事件处理。5.2.1定义成员变量声明列表视图类listv

10、iew的私有对象listview;声明简单适配器类simpleadapter的私有对象simp_adapter;声明泛型列表类private list<map>的私有对象datalist;声明私有按钮类对象addnote;声明私有文本视图类对象tv_content;声明私有数据库创建类notesdb对象db;声明私有数据库处理类sqlitedatabase对象dbread;5.2.2重写oncreate()方法设置显示界面布局文件为notelist.xm,通过id获取界面组件的引用分别赋给listview、addnote、tv_content,创建对象mcontext、datali

11、st(泛型类对象)、db、dbread。处理“添加事项”按钮addnote的事件:通过intent对象进行数据传递并打开事项编辑界面,事项被编辑保存后,调用自定义方法refreshnoteslist()刷新列表视图界面。分别监听列表视图listview的单击事项、长按事项、滚动查看事项事件。5.2.3定义方法refreshnoteslist()定义方法public void refreshnoteslist( )实现列表视图内容刷新,方法体:获取列表视图中事项的个数赋给整型变量size,若size>0,则通过使用适配器对象simp_adapter将方法getdata()从数据表note中

12、获取的所有记录内容更新到列表视图中。5.2.4定义方法getdata()定义方法private list<map> getdata()获取数据表中所有记录,方法体内容:dbread调用query方法查询数据表note中所有记录,查询结果封装在cursor类对象cursor中,通过while循环逐条读取cursor中的记录,将当前记录中content字段的值赋给string类变量name,将当前记录中date字段值赋给string类变量date,将name和date分别以名值对的格式存入map类对象map中,将map添加到datalist中,关闭cursor,返回datalist。5

13、.2.5 实现接口onscrolllistener重写接口onscrolllistener中的方法onscroll()处理列表条目滚动事件:方法体中无语句。重写接口onscrolllistener中的方法public void onscrollstatechanged(abslistview arg0, int arg1)处理列表视图listview界面的滚动状态改变事件,方法体内容:若arg1值为scroll_state_fling则log.i("main", "用户在手指离开屏幕之前,由于用力的滑了一下,视图能依靠惯性继续滑动");若arg1值为sc

14、roll_state_idle,则log.i("main", "视图已经停止滑动");若arg1值为scroll_state_touch_scroll,则log.i("main", "手指没有离开屏幕,试图正在滑动")。5.2.6 实现接口onitemlongclicklistener重写接口中的方法public boolean onitemlongclick (adapterview<?> arg0, view arg1, int arg2, long arg3)处理列表视图listview中某项的长

15、按事件:使用builder模式创建警示消息对话框,该对话框标题为“删除该日志”,警示消息为“确认删除吗?”。重写接口dialoginterface.onclicklistener中的onclick()方法處理对话框中“确定”按钮的单击事件,方法体内容:获取被长按的项目序号,在数据表中查询到该序号对应的项目记录并删除。重写接口dialoginterface.onclicklistener中的onclick()方法处理对话框中“取消”按钮的单击事件,方法体内容为空。返回true。5.2.7 实现接口onitemclicklistener</map</map重写接口中的方法public

16、void onitemclick(adapterview arg0, view arg1, int arg2, long arg3)处理列表视图listview中的某项单击事件。方法体内容:根据单击条目的序号获取该条目的内容,在数据表note中查询该内容对应的记录,利用intent和bundle对象将被单击的事项内容传递给事项编辑界面并打开该界面。5.2.8重写父类activity中onactivityresult()方法重写方法protected void onactivityresult(int requestcode, int resultcode, intent data), 接受上一

17、个页面返回的数据,并刷新页面。5.3事项编辑功能实现定义activity的子类noteedit,定义成员变量,重写oncreate()及onactivityresult()方法,处理“保存”按钮和“取消”按钮你的单击事件。类体内容如下:5.3.1 定义成员变量声明textview类对象tv_date用于显示日期,声明 private edittext et_content作为事项内容编辑框,声明“保存”按钮对象private button btn_ok作为,声明“取消”按钮对象private button btn_cancel,声明创建数据库的对象private notesdb db,声明处理

18、数据库的对象private sqlitedatabase dbread,定义整型类变量public static int enter_state = 0辨识当前事项是否是新增事项,声明字符串对象public static string last_content保存由列表视图界面传递来的事项内容,声明整型类变量public static int id表示当前被编辑事项的id。5.3.2 重写父类activity中oncreate()方法设置显示界面布局文件为noteedit.xml,通过布局文件中定义的id获取界面中的日期显示视图tv_date、内容编辑框et_content、“保存”按钮对象b

19、tn_ok及“取消”按钮对象btn_cancel。设置软键盘自动弹出。创建对象db及dbread,通过bundle类对象bundle获取列表视图界面传递来的事项内容赋给last_content,将该内容显示在et_content中。重寫接口onclicklistener中方法public void onclick(view arg0),处理“保存”按钮的点击事件:获取事项内容,获取事项创建或修改时间,创建date类对象date,设置日期格式并将该日期转换为字符串显示在tv_date中。,若enter_state=0且编辑框内容不为空,则在数据表中新增一条事项记录;若enter_state!=0则更新数据表中的事项记录。重写接口onclicklistener中方法public void onclick(view arg0),处理“取消”按钮的点击事件:调用finish()方法实现当前界面的关闭。5.3.3 重写父类activity中onactivityresult()方法重写方法protected void onactivityresult(int requestcode, int

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论