计算机科学与技术专业毕业论文--同学录管理系统设计与实现_第1页
计算机科学与技术专业毕业论文--同学录管理系统设计与实现_第2页
计算机科学与技术专业毕业论文--同学录管理系统设计与实现_第3页
计算机科学与技术专业毕业论文--同学录管理系统设计与实现_第4页
计算机科学与技术专业毕业论文--同学录管理系统设计与实现_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

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

文档简介

1、计算机科学与技术专业毕业论文一同学录管理系统设计与实现摘要随着现在智能手机越来越普及,移动电子商务新一轮的竞争也将逐渐展 开。我们作为21世纪的tt人员,应该具备熟悉并运用新一代google推出的 android系统来开发手机订餐系统的能力。本系统就是充分利用android和数据 库技术,主要以listview widget来作为搜索加载,显示餐厅数据。重写访问数 据库的类,利用其内置的方法访问数据库。通过使用手机内的sqllite数据库来 创建数据,同时迎合现在年轻人对于智能手机的喜爱和追捧。该系统和对于传统 的订餐模式和前几年流行的短信订餐模式而言,界面友好,功能更加强人,因而 本系统更具

2、有优势。关键字:智能手机;android;移动电子商务;手机订餐;sql1 iteabstractwith the increasing popularity of smart cellphones, a new round of competition inmobile e-commerce wi11 expand gradually. so we, the new generation of it staff should be familiar with android system in order to develop mobile food-booking systems. the

3、 mobi1e system and database techno logy are in full use of android. it is mainly used by lis tvicw widg ct to load and search,display the restaurant?data, rewrite?the class?toaccess the database, using its?built-in?way to?acccss the database. by using the cellphone" s sql1 ite database to creat

4、e data, it caters to young people's tastes and sought after smart cellphones. comparing to the traditional ordering patterns and sms, it has the advantages of friendly interface and powerful functions.key words :smart cellphones;sms;android;mobile e-commerce;phone reservation;sqllite目录1 绪论 .131.

5、 1知识背景131. 1. 1android系统简介13-171. 1.2androidapplication层应用17-181.2 eclipse 安 装 及 android sdk 配置18-212. 1系统概要212. 1. 1android要212.2 总体设计22-243 详细设计24-393.1具体类的设定24-363. 1. 1类 createrestaurant. menu, java 的 实现243.1.2 类initrestaurantmenu. java的实现25-273. 1.3类editrestaurantmenu. java的实现27-303. 1.4类choose

6、restaurant. java的 实现30-333.1.5类 gcopointimageoverlay. java 的 实现33-343. 1.6类 mysqliteopenhelper. java的 实现34-363.2 类 中包含 的.xml 文件设置36-39语39致谢394 主要参考文献40-415 (附 录) 软 件 流 程图41-42第一章绪论手机订餐的出现必将改变人们对订餐的看法。在手机订餐之前,无论是 学牛族还是上班族,电话订餐往往是采用最普遍的订餐方式。然而美在线订餐网 站grubllub通过发布iphone和android的手机订餐应用,在短短的5个月时间 内融资达到20

7、00万美元。7这个数字足以使我们对手机订餐的前景刮目相看。 电话订餐相对于手机订餐而言有很大的局限性,首先是吋效问题,订餐高峰期, 一部电话根本招架不住那么多的订餐顾客;其二,不利于同学们对周围饭店信息 的广泛获取;其三,点菜不方便;其四,是打电话的成木过高。综上所述,我们 需要推广手机订餐來取代人们所习惯的电话订餐方式。13手机订餐的岀现得益于互联网的发展,在internet高速发展的今天,互 联网已经越来越成为人们快速获取、发布和传递信息的重要渠道,它在人们的经 济、政治、生活等各方面发挥着越来越重耍的地位,而互联网发展的短短十年间, 智能手机的发展和手机的3g化已然成为互联网发展的两个最

8、新热点。我们现在 所使用的iitc智能手机,就运行着当代最流行的智能手机操作系统z的android系统。围绕着该操作系统,android market 放平台上截止至今已经有 25万个应用。每个android平台上的开发人员都希望自己能拥有属于自己的应 用程序发布到开放平台中,设计与开发android的应用软件对我们把握移动电子 商务市场行情有着重要的意义。111.1知识背景1. 1. 1 android系统简介android 一词的本义指“机器人”,同时也是google于2007年11月5日 宣布的基于linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、 用户界面和应用软件组成

9、,号称是首个为移动终端打造的真正开放和完整的移动 软件。16同时android系统以linux作为核心,使用java.作为编程语言,使接口到功能,都有层出图1 android体系结构图18其中蓝色部分:应用程序绿色及黄色部分:中间件。红色部分:作业系统。 多媒体资料库采用sqijte资料库系统。资料库又分为共用资料库及私用资 料库。用户可透过contentresolver类别(column)取得共用资料库。android装配一个核心应用程序集合,包括电子邮件客户端、sms程序、 日历、地图、浏览器、联系人和其他设置。所有应用程序都是用j"眩编程语言 写的。更加丰富的应用程序有待我们去

10、开发!从上面我们知道android的架构 是分层的,非常清晰,分工很明确。android木身是一套软件堆迭software stack ,或称为软件迭层架构,迭层主要分成三层:操作系统、屮间件、应用程序。phone为android电话通信和短信发送功能提供了基本的功能,home又是 android启动的一切基础,browser则足以使android在浏览器领域和web2. 0时代 成为1t企业中的领军人物,这一切都为我们使用android打下了良好的基础。1. 2 eclipse 安装及 android sdk 配置在了解有关android系统的简单知识后,下面要知道的是如何在windows

11、平台下安装google官方推荐的eclipse编译器,并在eclipse编译器下集成 android sdk开发环境的步骤:13一. 相关下载1 java jdk 下载:进入该网页:图2 java jdk下载界面选择down 1 oad jdk只下载jdk,无需下载jre.2 eclipse 下载进入该网页:应选择第一个 即eclipse ide for java ee developers3下载android sdk,在android官方网站上下载专门的sdk。说明:android sdk两种下载版本,一种是包含具体版本的sdk的,一种 是只有升级工具,而不包含具体的sdk版本,后一-种大概

12、20多m,前一种70多 mo二. eclipse酉己置1安装android开发插件1 打开 eclipse,在菜单栏上选择 help- install new software 出 现如下界而:图 3 eclipse install 安装点击add按钮,出现如下界面:图4 add进入界面输入网址:点击next按钮,出现如下界面图 5 android development tools 安装界面后而即可通过选择i accept来完成相应android sdk开发坏境的安装,成 功后会在eclipse的工具栏上出现android机器人的相应图标,此时说明 android环境已安装好。2. 配置 a

13、ndroid sdk1点击菜单window- preferences,进入如下界面:图 6 android preferences 配置界面选择你的android sdk解压后的目录,选错了就会报错,这个是升级工具, 目前还没有一个版本的sdko2 升级 sdk 版本,选择菜单 window- android sdk and avd manager, 在里面勾选update all的选项,则android对应的每个sdk api开始执行安装。3 新建 avd android vitural device,和上面一样,进入 android sdk and avdmanager,选中vitural

14、 devices在点击new按钮,名称可以随便取,target 选择你需要的sdk版木,sd卡大小自定义,点击create avd,则创建avd完毕。3. 新建android项目在file目录下选择new选项,并选择下一级菜单中的other选项,这样 就可以新建得到一个android project,到此即完成了 android sdk的所有工作。第二章系统分析2.1系统概要开发android平台下的手机订餐系统,主要目的是为了满足两方面的需求: 一方而是满足以android为系统的手机用户软件使用需要;另一方而则是为了满 足上班族对中餐的需要。因此我们要结合以上两方面来分析手机订餐系统的设计

15、 意义。上班族希望自己每天的饮食能同时做到经济、实惠。但是很多时候上班族 都忙于自己的工作,一方面他们无法将自己的精力分摊到饮食中,而另一方面现 在许多餐馆的食品质量实在是无法让人恭维。民以食为天。特别对于上班族来说, 很多人孤身一人在外面上班,现实生活中每一个人与周围同事之间总为了每天中 午应该吃什么而发愁。那么开发android平台下的手机订餐系统对于解决上班族 的问题起着至关重要的作用。2. 1. 1 android 概要本系统中最重要的功能即要完成数据库的及吋更新,对android手机而 言,最好的方式莫过于使用sqlite热量骰子地图来整合应用。因此在android 概要中,sqli

16、te的应用过程显得非常重要,android整合了轻量级的sql数据库, 从而大大减轻了开发者的负担。数据库支持毎个应用程序无论大小的生命线,除非所有的应用程序只处 理简单的数据,那么就需要一个数据库系统存储你的结构化数据,android使用 sqlite数据库,它是一个开源的、支持多操作系统的sql数据库。在android 屮,当我们为某个应用程序创建的数据库,只有它可以访问,其它应用程序是不 能访问的,数据库位于android设备/data/data/databases文件夹中,包含了基木数据库 所具有的各种语言功能。2.2总体设计android地图整合应用部分采用了 sql数据库,程序使用

17、了手机里的sqllite 创建数据,提供了 listview widget来作为搜索加载(select),以显示餐厅数 据之用,除了新建餐厅资料之外,在listview上设计与user交互的onclick listener,使用户随时可以进入餐厅维护的界面,同时在以上步骤屮支持各个餐 厅的“删除”与“修改”功能o 2通过以下这张表来简单反映岀该程序的6个部分和其主要功能:程序名称 程序说明createrestaurant. menu, java activity 进入点为欢迎界面activity,提供了 3个menu功能 添加餐馆、编辑餐馆、今天饮 食,使用户可以从这个界面开始操作。initr

18、cstburemtmcnu. j3v3“添加餐馆” activity,提供一个新建餐厅表单layout以及两个menu功能 (编辑、今天饮食),在这个activity中,让用户新建餐厅数据进入数据库,当 数据库发现欲创建的餐厅名称已存在于数据库,便不运行添加的动作,在user 单击“送出”按钮后,随即前往“编辑” activityoeditrcstaurantmcnu. java "编辑餐馆” activity,这是一个 tcstvicw 与一个listview所组成,在加载此activity的同时,自数据库中选出已创建好的餐厅 数据,将之显示于listview当中。当用户单击餐厅名

19、称,则跳岀对话窗口提供 “编辑”或“删除”餐厅数据功能。续表chooserestaurant. java 今天饮食"activity,这个 activity 包含了一 个textview显示被勾选的餐厅资料之外,也提供了一个mapview来显示该餐厅 的地图,运行此activity程序会自数据库里选出所有餐厅数据,接着,以随机 数的方式随机取出餐厅名称、地址以及热量等数据。geopointtmageoverlay. java自定义在地图上放置图片的overlay类,可让程序调用直接传入drawablc id与gcopoint在mapvicw上显示图片文件over 1 ayo mysq

20、liteopenhelper. java自定义数据库访问类,包含新建数据表(oncreate )、查询数据表(select )、删除数据记录(delete )以及 新建数据记录(insert )等方法。表1订餐系统总体设计介绍六个大类的设计从整体上相辅相成,类的组织则由附录中的类的组织结构 图来完成。本设计类图在论文的最后,包含有软件设计的全部流程图和全设计类 图。这个类图主要的作用是用来说明木程序的基木运行流程和该系统在设计过程 屮界面和类的整体结构。以上的6个类的内容在整体设计屮都会利用到 gps+camera的混搭,让创建餐馆功能得以轻松完成,而且不需要键入任何地址 数据,也能让照片拥有

21、地理坐标,最后存储在数据库中,让程序般子取岀使用。第三章详细设计3.1具体类的设定3. 1. 1 类 crcatcrcstaurant. menu, java 的实现第一个类createrestaurant类主要是为了给用户提供了在进入欢迎界 而后完成后而后续步骤的操作。这个menu导引用户实现其对应的功能,整个程 序内容中主要包含了有关menu菜单的描述。主程序中包含了 3个menu功能菜单, 这3个菜单分别指向了系统屮包含的其它3个功能,即新建餐馆、编辑餐馆和今 天饮食的问题。对于程序中可能出现的问题,则要事先设置好相应的访问规则,这里有 3个分支,所以在选择结构中我考虑使用到switch

22、-case选择结构,这样判定不 仅准确性高,而且能更好的提高程序整体的复用性。以下是该程序中的关键步骤:在创建菜单栏过程中,以下3个android菜单创建过程最为关键。通过 这3个步骤来依次管理menu的3个部分下对应的菜单,以下是3条执行语句。/*建立3个menu选单*/menu, addidgroupl,menu_add,orderlteml,r. string, str manul . seticon android. r. drawable, ie menu add ;menu, addidgroupl,menu_edit,orderltem2,r. string str_manu2

23、seticon android r. drawable ic_dialog_info ;menu, addidgroupl,menu draw,orderltem3,r. string. str_manu3 seticon r. drawablc. hipposmall ;android在menu选项中加入identifier,这些identifier的作用是给刚 才的menu选单提供识别标识,从而能使它们可以唯一-被计算机所识别。点击menu 时,系统调用当前activity的oncreateoptionsmenu方法,并传一个实现了一 个menu接口的menu对象供你使用。/*独一无二的m

24、enu选项identifier,用以识别事件*/static final private int menu add menu. first; static final private int menu edit menu. first+1;static final private int menu_draw menu.first+2;3. 1. 2 类 initrestaurantmenu. java 的实现添加餐厅"activity程序,提供了一个输入表单,该表单内包含餐厅名 称、地址以及热量三个字段,皆为必填字段,当用户单击送出按钮,则先查 询数据库里是否有已存在的餐厅名称。当餐

25、厅名称未存在时,才创建新的餐厅数 据进数据库,随后关闭该activity,前往''编辑餐馆” activity进行维护与查 看餐厅数据列表。欲使用自定义数据库访问类(mysqlitcopcnhclpcr. java)来查询数据,则 是调用dbhelp. select来进行查询,需传入的参数选项依次为数据表名称 table、查询取得字段columns、查询条件名称selection、查询条件值 selectionargs、分组别 groupby 参数(groupby) havtng 参数 having 以及 orderby 参数 orderby 。在使用数据库新建数据的过程中,由

26、于数据表t_restaurant字段有4 个:f_id、f name> f address和f_cal,分别代表数据id、餐厅名称、餐厅地址与 消耗热量,创建的字段类型除了仁id为自动增加的整数类型之外,其余均使用 text类型,这样做的一个好处是有效避免了 ui会检查各种格式的问题。以下是 该程序中的关键步骤:在数据库屮每添加一个餐厅资料,那么需要我们对每一个新建的餐厅资料要有明确的标识方式,就像关系数据库有标识符和对应关系一样,我们需要明确餐厅的基本资料,下而的申明就是对应餐厅的资料使用:/* version必须大于等于1 */int version 1;/* table数据表*/s

27、tring tablest_restaura/*字段名称*/string fieldnamest id , i name , t address , i cal»/*字段类型*/string fieldtypes"integer primary key autoincrement", text , "text", text9这个餐厅数据界面在启动功能选项的时候,我可以在该界面停留并做出两个 选择。其中一个是前往编辑功能、而另外一个是前往系统随机数选择餐厅功能, 为了区分开这两个选项,在上一个类中已经预先定义好了 menu_edtt和 menu_

28、draw这两个标识符来标识程序的流向。switch item, getltemldcase menu edit :if dbhelper! null && dbhelper. getreadabledatabase . isopen dbhelper. close ;intent. setclass ex1o 06 02.this, ex10 06_03. class ;startactivity intent ;finish ;break;case menu_draw :/*前往系统随机数选择餐厅功能*/if dbhelper! null && dbhelpe

29、r. getreadabledatabase . isopen dbhelper. close ;intent. setclass ex10 06 02.this, ex10 06 04.class ;startactivity intent ;finish ;break;return super. onoptionsitemselectcd item ;3. 1. 3 类 editrcstaurantmcnu. java 的实现类editrestaurant的主要功能是为了完成“编辑餐馆”的activity功 能,该activuty 在 u1 部署上设计了两个 textview mtextv

30、iewol 与 listview nilistviewol ,前者用以显示此activity的功能描述,后者则是提供在数据库搜 索z后得到的显示结果。此过程于oncreate 同时,调用 mlistviewol. setonltemlistener 方法捕捉 user 在 listview 上单击按键或单 击餐馆名称之后要处理的事件,如程序里所描述的,当user在listview ±单击 了其中一个餐厅名称,便会跳出alcrtdialog,在这个dialog对象上显示两个 item选项即“数据修改”和“删除数据”。运行“数据修改”功能,程序依据用户选择餐厅的intltemselect

31、ed数 据库字段f_id进行数据库更新的工作dbhelper. update ,而在更新之前,会 带入该餐厅原本的数据于alertdialog里的3个edi ttext widget当中,这样可 以供用户参考旧的记录进行修改。以下是该程序中的关键步骤:从类的结构来看,这个类作为木程序的核心类,我们自然要关注的是这个类 的核心功能。那么依照我们前面对数据库的定义方式,当我们确定google map 定位的具体位置时,比如我目前在武汉,则数据库应该保存处于武汉这个地区所 有可能的餐厅进行选择,因此我们要对数据字段进行初始化说明。private list allrestaurantld;privat

32、e list allrestaurantmame;private list allrcstaurantaddrcss;private list allrestaurantcal;private list istrestaurant;private int intltemselected -1;/*数据库数据表*/private string tables zzt_restaurantzz ;/*数据库字段名称*/private string fieldnames门i门门i门i_id , ame , i_address , i_cal/*数据库字段数据型态*/private string fie

33、ldtypes"integer primary key autotncrement,/, text,"text", "text"更新listview数据的清单对整个系统的稳定运行和维护起到作用,在 前一个查询得到的数据z后通过更新來完成对餐厅的多次查询,经过多次查询后 完成对新一片区域餐厅的搜索,最终可以删除餐厅的数据。当数据库无数据的时 候,我们就把flag位置为-1,这样好区分数据库是否有无记录。if istrestaurant. size 0arrayadaptcr adapter new arrayadapter ex10_06_03

34、this,r. layout, simple list item single choice, istrestaurantmlistvicwol. sctltcmscanfocus true ;mlistviewol. setchoicemode listview. choice_mode_single ;mlistviewol. setadapter adapter ;else/*数据库无纪录,将flag设定为-1 */intttemselected -1;arrayadapter adapter new arrayadaptcr ex1o 06 03.this,r. layout. sim

35、ple_list_item_single_choice, istrestaurant ;mlistviewol. setltemscanfocus true ;mlistviewol. setchoicemode listview. choice_mode_single ; mlistview01.setadapter adapter ;有关android每个函数的用法,我参考的是android的widget合集中每一 个部分的使用方法。跟类creatercstaurant. menu, java有类似的地方在于我们 要定义一个boolean函数onmenuitemselected ,这个函数

36、就会用到我们在第一 个类中已经定义的3个识别标识identifier,利用switch-case结构来实现对 进入界面所需要的选择步骤。switch item, getltemldcase menu add :if dbhelper! null && dbhelper. getreadabledatabase . isopen dbhelper. close ;intent. setclass ex10_06_03.this, ex10_06_02. class ;startactivity intent ;finish ;break;case menu_draw :/*前往系

37、统随机数选择餐厅功能*/if dbhelper! null && dbhelper. getreadabledatabsse . isopendbhelper. close ;intent.setclass ex1o 06 03.this, ex10 06 04.class ;startactivity intent ;finish ;break;return super. onmenuitemselected featureld, item ;3. 1. 4 类 chooserestaurant. java 的实现chooscrestaurant类将会对每一个你将要选择的餐厅

38、进行一次二次选择, 而为了保证我们在餐厅选择过程中保持有一定的客观性,所以该activity会以 随机数选择餐厅数据drawrestaurant ,所以要从该类的oncreate方法开始, 便会向数据库运行查询所有餐厅的工作select f from tables0,通过该查 询得到的查询结果将会以list存放,同时包含有以下4个对象即 allrestaurtantidfid 、allrestaurtantname fname 、 allrestaurtantaddressf_address 、与allrestaurtantcal f cal 。随机数取得众餐厅里的id值 allrestau-

39、rantid,依次此id我们可以查出选择餐厅的地址、名称以及中午吃 饭所能获得的热量。在这个activity当中,除了 textview widge t夕卜,尚有一个 com. googl e. an droidmaps. mapviewwidget,所以这个类我们需要注意的是它并不直接继承 自 activity,而是继承自mapactivity,关键方法部分也必须重写isroutcdisplaycd方 法,否则可能会导致程序在编译过程中产生错误。当我们有了被勾选的餐厅地址 allrestaurtantaddress. get intitemsele ,便可以利用android中非常重要的自定

40、义函数gctgcobyaddrcss来反查该 地址的gcopoint坐标,获得坐标后最后调用rcfrcshmapvicwbygcopoint 函数来更新mapview里的google地图。下面是程序关键部分说明:这个类的使用需要注意的地方是我们要用到google地图所提供的api接口,地图精确定位是google利用卫星所创造的优势,那么我们编写利用google地图完成勾选餐厅位置功能,大致的步骤是需要先获得查询地址的地理坐标-依照地理地址反查询地理坐标-更新mapview地图-在地图上显示overlay图片,由此步骤我们用到的有关android, maps下的地图包。查询geopoint类下的

41、函数来取得地理坐标,以下是实现部分:/*以地址查询地理坐标*/geopoint gp getgeobyaddress alirestaurantaddress. getintthrowindcx ;if gp null/*地址无法反查为geopoint时*/mmapviewol. setvisib订ity mapview. gone ;elsemmapviewo1. setvisibility mapview. visible ; showlmageoverlay gp ;refreshmapviewbgeopoint getgeobyaddressallrestaurantaddress.g

42、etintthrowlndex , mmapviewol, intzoomlevel,true ;else/*数据库无纪录*/geopoint类在系统中是属于自定义的私有类型,因此我需要重新 描述这个函数,传递给这个函数的参数实际上就是一个地址字符串 strsearchaddress,最终得到的返回对象是地理坐标对象。private geopoint getgeobyaddress string strsearchaddressgeopoint gp null;try if strsearchaddress!geocoder mgeocoderol new geocoder ex10_06_0

43、4. this,locale. getdefault ;list istaddressmgeocoderol. getfromlocationnamestrsearchaddress, 1 ;if !istaddress. isemptyaddress adslocationistaddress. get 0 ;*1e6;*1e6;/* 1e61000000*/double geolatitudedouble geolongitudeadslocation. getlciti tudeadslocation. getlongitudegpnew geopointint geolatitude,

44、intgeolongi tude ;catch exception ee.printstacktracereturn gp;3. 1. 5 类 geopointimageoverlay. java 的实现geopointlmageoverlay类继承自overlay类,调用其内覆盖的draw 方法 即可在overlay ±绘制文字或图标,以此类为例,则是放置一张drawable图片。 该overlay类有3中构造方法,程序中以第三种传入gcopoint对象的方式来构 建,在mapvier ±指定geopoint的经纬度来放置一张图片。以下是该类调用方 法的基本说明:andr

45、oid中overlay类是一个基类,本身它表示可以显示在地图上方的覆盖 类。添加一个overlay从这个基类派生出一个子类,创建一个实例,然后把它加入到一个列表中。这个列表通过调用mapview. getoverlays得到。为了 允许用户触摸去对齐一个点,子类应当实现overlay. snappable接口。overlay 类屮同时包含有一些draw和touch方法,这些方法的调用可以使放置图片与创 造经纬度的方式更加容易。在这个类中我们主要用到的建构方法是传递location对象。public geop oin tlmageoverla locati on location, int dr

46、awable idthis mlocationlocation;/*取得location的经纬度*/this.geolatitude this. mlocation. getlatitude *1e6; this. geolongitudethis. mlocation. getlongitude *1e6;public geopointlmageoverlay double geolatitude, double geolongitude, int drawableidthis.geolatitude geolatitude*le6;this.geolongitudegeolongitudc

47、*1e6;this, drawableiddrawableid;public geopointimageoverlay geopoint gp, int drawableidthis.geolatitude gp.getlatitudee6 ;this.geolongitudegp.getlongitudee6 ;this, drawableiddrawablcid;3. 1. 6 类 mysqli teopenhel per. java 的实现android本身集成了一个轻量级的数据库,但是这些数据库在某些方面可能 存在较大的问题,如果程序的每个类都使用android集成的sqllite数据

48、库的话, 那么每个程序只能独立的使用自己的数据库、数据表以及字段。因此为了方便本 程序相互之间完成数据库的访问,所以我们必须编写这个 mysqlitcopenhelper. java类,此类的作用是完成访问数据库,以此可以利用其 内置的方式访问数据库,这样可以依靠eclipse编译器来对应识别程序注释。sqlliteopenllelper类包含了以下这些部分,其屮基本的功能包含有创 建table.查询数据、添加资料以及删除数据。这4项基本功能足以完成对手机 订餐系统数据库的操作。数据库的访问和遍历需要同时进入数据库的访问段来显 示,sqlite在创建之初就对其它数据类型的支持不同,优点就是高效

49、,在 android运行吋环境包含了完整的sqlite,创建一个表吋,可以在create table 语句中指定某列数据类型,你也可以将任意数据类型放入任何列中。当某个值插 入数据库中时,sqlite将会自动处理和识别相应的信息,从而得到结果。android, database. cursor类中补充定义了一些常用方法,我可以利用这些 方法老完成数据库的操作,movetoposition , getcolumncount等函数可以相 应的使用来返回函数值。在实际的使用过程中,更多的是通过adapter来将 cursor与适配器控件联系起来,实现其bindview和newview两种方法。pub

50、lic cursor sclcct string table, string columns, string sclcction, string selectionargs, string groupby, string having, string orderbysqlitedatabase db thisgetreadabledatabase ;cursor cursordb. query table, columns, selection,sclcctionargs, groupby, having, orderby ;return cursor;上面是一个有关cursor下sql查询应

51、用的例子,在木程序的拓展中加入 该查询数据,可以完成的包括查询的table name.查询的数据字段、查询条件 字符串、查询条件的值、groupby后面的字符串、having后面的字符串以及 orderby后面的字符串,最终将会返回一个己经取得的资料集。public int update string table, string updatefields,string updatevalues, string where, string wherevaluesqlitcdatabase dbthisgctwritablcdatabasc ;/*将修改的值放入contentvalues */co

52、ntentvalues cv new contentvalues ;for int i 0; i updatefields1ength; i+cv.put updatefieldsi, updatevaluesi;rcturn db.update table, cv, where, wherevalue ;该例在sql中更新数据,需要像该程序中提供数据的table name.数据 的字段名称、数据的字段值、除数据的条件、数据的条件值,最后返回的是更新 的笔数。3.2类屮包含的.xml文件设置在android程序中,xml文件一直都是重点设计部分。在整个程序设计流 程中,我们需要自己定义有关xm

53、l的部分,因此我参考一部分内容,简单介绍下 android开发过程中的xml文件。manifest, xml 基本说明:对于windows程序开发的人员而言,manifest这个文件并不陌生,它是对 应用程序的说明,包括运行权限、界面主题等。在vs中有可视化的设置界面, 开发人员只需要进行简单的操作,就会自动形成这个文件,所以在通常情况下, 很多vs开发人员其实并不都知道manifest, xml文件的存在,更不用说了解它的 作用了;而在eclipse开发工具中,似乎找不到类似的可视化的设置界面,而每 个android的application中都必须包含一个androidmanifest. x

54、ml,且文件名 是固定的,不能修改。应用程序需要通过它向android系统提供一些必需的信息, 且需要在application运彳亍前提供给系统。我们使用的androidmanifest. xml文件包含有以下儿个内容:1. 说明application的java数据包,数据包名是application的 唯一标识。2. 描述 application 的 component。3. 说明 application 的 component 运行在哪个 process 下。4. 声明application所必须具备的权限,用以访问受保护的部分api,以 及与其他appl i cat ion的交互。5.

55、声明application其他的必备权限,用以component之间的交互。6. 列举application运行时需要的环境配置信息,这些声明信息只在程序开发 和测试时存在,发布前将被删除。7. 声明application所需要的android api的最低版本级别,比如1. 5等。&列举application所需要链接的库。androidmanifest. xml 的结构和规则:androidmanifest. xml 文件的结构、 元素,以及元素的属性,可以在android sdk文档屮查看详细说明。而在看这些 众多的元素以及元素的属性前,需要先了解一下这些元素在命名、结构等方面的

56、 规则。元素:在所有的元素中只有和是必需的,且只能出现一次。如果一个元素 包含有其他子元素,必须通过子元素的属性来设置其值。处于同一层次的元素, 这些元素的说明是没有顺序的。属性:按照常理,所有的屈性都是可选的,但是有些属性是必须设置的。那 些真正可选的属性,即使不存在,其也有默认的数值项说明。除了根元素的属 性,所有其他元素属性的名字都是以android:前缀的。定义类名:所有的元素名都对应其在sdk中的类名,如果你自己定义类名, 必须包含类的数据包名,如果类与application处于同一数据包中,可以直接简 写为“”。多数值项:如果某个元素有超过一个数值,这个元素必须通过重复的方式来 说

57、明其某个属性具有多个数值项,且不能将多个数值项一次性说明在一个属性 中。资源项说明:当需要引用某个资源i寸,其采用如下格式:package: type:nameo 例女口 activity android: icon,zdrawable/icon"。 字符串值:类似于其他语言,如果字符中包含有字符,则必须使用转义 字符。在这次手机系统设计中,我采用了一些重要的参数来设置对应的xml 文件部分,以下是layout布局中和manifest, xml中涉及到的重要语句。layout_draw. xml:该xml文件是用来负责今天饮食内容的布局,在该layout 其中可以见到一个 com. google. android, maps. mapview 与设置的 map api key。com. google, android, maps. mapviewandroid:apikey,z086l9pgjlb6xqprgqvxcelnvax16njc5g0fh4aw,z /layout_edit. xml:负责用户在编辑餐

温馨提示

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

评论

0/150

提交评论