版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 智能终端软件设计及开发 期 末 综 合 报 告课程名称: 智能终端软件设计及开发 题 目: 基于Android平台的网上订餐系统 学 院: 信息工程与自动化学院 第1章 引 言1.1项目背景 随着计算机、互联网和移动终端及其应用的快速发展,不断的改变着人们的工作方式、交流方式、学习方式以及生活的各个方面,尤其是电子商务的突飞猛进正使人们的购物方式、支付方式发生着翻天覆地的变化。如今快节奏的生活方式让人们困扰不已,而就餐与交通问题首当其冲。餐厅太过拥挤、客流高峰期就餐困难、点餐等待等问题层出不穷。如果能有一个为广大民众所接受的系统应用解决这些问题,对于解决生活中的困扰及提升人们的生活质量都有极
2、大的帮助。它将因特网、移动通信技术、短距离通信技术及其它信息处理技术完美的结合,使人们可以在任何时间、任何地点进行各种商贸活动,实现随时随地、线上线下的购物与交易、在线电子支付以及各种交易活动、商务活动、金融活动和相关的综合服务活动等。 而Android操作系统凭借着自己开放的平台允许任何移动终端厂商加入Android联盟中,从而使得越来越多的用户倾向于选择操作系统为Android的手机品牌。选择设计基于Android平台的软件,毫无疑问能覆盖更多的群众, 餐饮业在电子商务中还处于形成的初期,传统的餐饮业中,大都是以实际门面形式来进行宣传和交流。作为网络普及化的社会,这还缺少了一些更为现代化的
3、元素。餐饮业是一个个性化、多样化的服务业,而电子商务则最能体现个性化、多样化服务的方式。而且现在大部分电子商务都体现为向大企业服务,结合餐饮这个行业的特点,最终还发展为同小区小店服务的模式。以最贴切的方式,最灵便的服务进入个个网络社区,进入人们的生活。 1.2 项目目的 如今宅男宅女日益增加,很多餐饮店都提供外卖服务,传统的外卖服务需要客户给商家打电话并报出地址,商家那边也需要记录下客户的信息,才能将外卖准确的送达,但在这之间都是人在操作,难免会出现偏差和遗漏为客户或者商家带来损失。记者调查发现,当下众多此类网站,如大众点评网、订餐小秘书、紫页114、请客800等,都有一个共同的盈利模式,即通
4、过互联网帮客人订餐、提供一定的折扣,从而获得店方给予的返点,这样的运营模式实际就是餐饮行业的携程网。这些网站不仅可以给网民提供海量的餐厅信息、交流美食心得的平台,而且可以给订餐者实实在在的折扣。用户要点餐的时候只需手机上网点一下菜单就能吃到自己喜欢吃的菜品,这里面蕴含了很大的商机,完全能够有效的提高商家的营业额,基于以上因素,所以提出了这样一个基于Android的网上订餐系统。 本项目的目的是开发一个可以让用户在手机上操作的客户端,然后与服务器连接进行数据交互,来实现网上订餐的流程。客户端需要实现浏览菜品,点菜,下订单,搜索等功能。服务器端需实现添加、删除、修改菜品、对订单的处理,以及对会员的
5、管理等功能。 1.3 主要内容 本项目是一款基于Android手机平台的订餐系统,使拥有Android手机的用户生活更加方便快捷,使得手机显得更生动灵活化,与人们更为接近,让手机主人随时随地都能吃到自己喜欢的菜品。使人们的生活更加多样化。也使设计者更加熟练Android的技术和其他在市场上的特点。通过对实际情况的调研,本系统大致可分为三个部分,即手机客户端、电脑服务器端和数据库端。系统采用HTTP协议来进行数据传输。采用C/S结构,客户端为基于Android操作系统平台的智能手机,主要的业务逻辑则服务器端来实现,数据存储在数据库服务器。客户端主要实现位置服务,商品展示,会员注册及登录,购物车,
6、商品搜索和个人信息等功能,服务器端主要是完成数据交互和数据逻辑处理,而数据库则是负责商品、订单等的增删改查。第二章 需 求 分 析1. 背景分析和构建必要性数字化餐饮管理系统是处于导入市场的阶段。无线点餐系统管理软件供应商在餐饮行业市场满地找餐饮老板,希望出售自己产品。而餐饮老板在这个信息化满天飞的时代,总要受到影响,也希望通过这种数字化管理软件使得自己经营的餐饮能更有效的得到管理,能更多的盈利。但是,由于餐饮业界人士对这个无线点餐管理软件不能辩认,或者说识别出好的适应本身餐馆经营模式的无线点餐管理软件所需时间较长,因而,总的来说,他们处于一种观望状态,或者考察时间相对来说较长。本项目中,我们
7、之所以能够有计划地进行下去,的确也是缘于良好的系统分析,如若省略这一步直接编程,那难度必然加大,以至于在编程过程中又不得不回过头来进行系统分析,此时必然拖慢进度,打乱整个系统逻辑,其最终的成品也充满变数。连系统应该具有些什么功能都没搞清楚,模块之间的联系也没分清,又怎么能做出一个好的系统呢?这绝对不是写一个算法就完事的小程序,项目成功进行下去的关键是弄清楚要做什么,而不是怎么做。首先,我们得确定使用这个系统的用户应该有顾客、厨师、管理员(包括收银员,只是其权限有限制)。顾客和管理员是开始系统数据的,他们做出一开始的操作,然后发到计算机中扫描及操作;厨师是接收数据的末端,因为最后是从厨师身上看到
8、任务的分配情况。系统的核心任务就是确保厨师完成顾客所点的菜品,厨师能够准确的从系统中得到做菜的任务。该系统在性能功能上应达到如下需求:() 操作简单、界面友好: 完全控件式的页面布局,使得菜品,资讯,送餐地址等信息的录入工作更简便,许多选项包括餐厅信息,客人信息等只需要点击鼠标就可以完成;另外,跟踪出现的提示信息也让用户随时清楚自己的操作情况。对常见的类似网站的管理的各个方面:基本信息录入、浏览、删除、修改、搜索等方面都大体实现,顾客对菜品的预定及支付方式;() 即时可见:能够立即处理顾客预订的餐饮信息然后达到即点即见的效果() 系统运行应该快速、稳定、高效和可靠;() 在结构上应具有很好的可
9、扩展性,在后面的功能扩展和维护方面会很方便。 主要 质量属性 详细要求正确性按照需求正确执行任务,完成各个模块的相应要求。健壮性容错能力和回复能力比较好。性能效率软件的输出结果更新周期应该与系统的信息更新周期相同。在网络情况良好的情况下,3秒内可响应用户请求。易用性易理解性:软件研制过程文档语言便于理解而且基本上没有什么歧义。安全性为了防止软件受到意外破坏和泄密,软件的数据应该全部放置在总部数据库中,只能专门人士才能看到。可扩展性可以进行进一步的开发,充分满足对功能的提升还可以提高软件的安全性能。兼容性不会和其他软件发生不必要的冲突。 需求图2. 功能需求 为了方便Android手机用户能随时
10、随地点到自己喜欢的菜品,提出一种操作简便,功能齐全,占用资源少,能为用户节约流量的的网上订餐应用,于是提出本系统的主要功能。 需求界面如下: 客户端: 1、 登陆、注册界面 2、 显示菜品界面 3、 搜索菜品界面(按菜品名称、种类、店铺名称进行搜索) 4、 购物车界面 5、 个人信息界面 6、 菜品详情界面 服务器端: 1、登陆界面 2、订单管理、菜品管理、会员管理界面需求实现功能如下: 客户端: 1、 实现客户端与服务器之间的连接 2、 实现登陆、注册功能 3、 实现登陆后能浏览到服务器数据,并对数据进行一系列的操作 4、 能把菜品加入到购物车,并结算生成订单 5、 把生成的订单信息传回服务
11、器端 服务器端: 1、实现管理员登陆 2、 实现添加、删除、修改菜品信息 3、 实现对客户端传过来的订单进行处理4、 实现添加、删除会员列表3. 可行性分析现在的社会经济发展非常迅速,B2C电子商务越来越受到人们的关注。无线订餐系统,在很多城市大酒店中已经很常见了。特别在很多大型的餐饮集团,已经成为了一种趋势。同时,随着全国人民的各种生活高度的提高,包括物质精神和文化,人们不仅要吃饱,还要吃好,对待酒店服务的态度也是越来越挑剔,现在无线订餐系统的出现,很好的满足的广大顾客的需要,不仅让宾客享受到精美可口的美食,更让他们感受到服务的完美与上菜的快捷。无线订餐业务在中国有着极大的发展空间以及良好的
12、背景。随着酒店管理的完善,使用这种智能的无线点餐系统必然成为追究卓越的餐饮公司的最爱,也更能够体现信息技术发展之猛烈。综合以上几点分析,此次综合设计决定基于Android平台开发一个简单的订餐系统。第三章 系 统 概 要 设 计3.1 功能概述现在对该系统的基本功能进行简单介绍。1、客户端 客户端概要设计表客户端模块简要说明登陆模块在连接上服务器的前提下登陆成功注册模块在连接上服务器的前提下注册成功浏览菜品模块从服务器中读取数据,并把数据封装显示在菜品列表中菜品详情模块点击菜品进入到菜品的详细介绍和订餐服务页面搜索模块按照用户选择的条件从手机数据库中搜索菜品购物车模块当用户定了菜品之后,所有订
13、单信息都显示在这个模块中,并且点击结算按钮生成订单传送回服务器个人信息模块显示用户的个人信息客户端流程图 会员除了通过电脑访问该系统之外,还可以通过在手机中安装相应的程序来访问该系统。在手机端,用户同样可以注册成为会员或登录系统,登陆成功后可以查看美食信息、搜索美食信息、上传美食信息、查询个人信息、查看个人的订单。 2、 服务端 服务器端概要设计表服务器端模块简要说明登陆模块提供管理员登陆订单信息模块显示现有的订单信息并给与处理按钮菜品添加删除修改模块对要显示在客户端的菜品进行添加删除修改操作会员管理模块对会员进行添加和删除以及查看信息当管理员登陆系统后,可以对整个系统进行管理,包括审核商户、
14、文章、广告信息;添加、修改和删除美食种类及美食信息;改变站长推荐、今日特价等信息;对数据库进行维护。服务器端流程图3.2 数据库设计数据库中的数据按一定模型组织描述和存储。具有较小的重复度,较高的数据独立性和易扩张性,并且可以被一定范围内的各种用户共享。在涉及数据库的软件开发中,需要根据有待解决的问题性质,规模,以及所采用的前端程序创建工具等。做出合适的数据库类型选择。 在该项目中建立了两个数据库,客户端和服务器各一个,用这种设计方式主要是为用户减少许多不必要的流量浪费,如果只创建一个服务器数据库的话,用户每次连接上服务器时都会将服务器的所有资源全部接受一遍,但是事实上该项目并不需要实时的更新
15、数据,因为有些菜品的信息可能很久都不会有变动,所以考虑在客户端也创建一个数据库把服务器端发送过来的数据存储在本地数据库中,当服务器有更新时只需要传递改变的数据就可以实现更新。数据库的概念设计,即利用数据模型进行概念数据库的模式设计。根据无线点餐系统的需求,设计出以下的实体-关系模型(E-R)图如图。图片价格描述编号菜类类型菜名包含订单明细ID编号数量备注对应订单送餐电话ID编号下单的客户是否结账送餐地址nn11送餐地址送餐电话ID编号送餐服务服务人员用户密码用户名称ID编号n1本系统中的信息表主要的数据表:会员信息表、商户信息表、美食种类表、餐品信息表、餐厅信息表、评论表、订单表、订单详情表、
16、用户推荐美食信息表等。主要的数据表表名属性Admin管理员编号,用户名,密码,权限BaseProducts菜品编号,菜品名字,菜品种类,菜品价格,菜品图片DetailOrders订单编号,详细编号,菜品编号,数量DetailProducts编号,菜品编号,菜品价格,菜品状态,折扣,菜品描述Member会员编号,会员名字,会员密码,会员性别,会员电话,会员地址,会员积分,会员金钱Orders订单编号,订单生成时间,会员编号,订单状态Shoppingrecord订单编号,详细编号,菜品编号,数量Showedgoods菜品编号,菜品名字,菜品种类,菜品价格,菜品图片 注:其中最后两个表存于客户端数据
17、库(SQLite)中,为了避免不必要的流量浪费和加快用户的访问速度。 连接数据库的设计与实现本系统采用java语言编写,使用jdbc连接Mysql数据库,所以要用到java中的connection对象和mysql驱动连接到数据库。其实现代码如下所示。String driver=com.mysql.jdbc.DriverString url=jdbc:mysql:/localhost:3360/wireless_db?useUnicode=true&characterEvcoding=utf-8 String username=rootString password=Connection
18、 conn;Class.forName(driver);Conn=DriverManager.getConnection(url,username,password)只有成功连接到了数据库才能进行其他操作,否则就无法开展以下的设计与实现工作了。可见,连接数据库是一个很关键的步骤。3.3 Android客户端的设计本系统的Android客户端是基于Android 2.1 开发出来的,下面是对Android应用程序的构成进行介绍。先看项目的目录结构(如下图一):在该程序中,包含如下一些主要的文件,接下来就详细解释一下。1、src目录 src目录中存放的是该项目的源代码,其内部结构会根据用户所声明的
19、包自行组织,例如本系统中所用的三个基本包,它们包含了程序所用到的Activity和各种类及各种方法。2、gen目录该目录下的文件是ADT自动生成的,并不需要人为地修改。它就是项目的字典,项目中用户界面、字符串、图片、声音等资源都会在该类中创建它们唯一的ID,当项目中使用这些资源时,会通过该类得到资源的引用。3、Android 2.1该目录中存放的是该项目支持的JAR包,同时还包含项目打包时需要的META-INF目录。4、res目录该目录用于存放应用城中经常使用的资源文件,包括图片、声音布局文件及参数描述文件等,包括多个目录,以drawable开头的三个文件是用来保存不同格式的图片的资源。Lay
20、out文件夹则是存放所有的布局文件的。Values是用来存放程序所用到的字符串、颜色及样式描述文件的。5、AndroidManifest.xml文件该文件时应用程序的系统控制文件,是应用程序的全局性描述文件,让外界知道该应用程序包含哪些组件、资源、何时运行及应用程序自身应该拥有的权限的声明。例如,本程序应用到的权限有:<uses-permission android:name="android.permission.INTERNET"/><uses-permission android:name="android.permission.ACCES
21、S_FINE_LOCATION"/><uses-permission android:name="android.permission.CAMERA"/><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />第一个是访问网络的权限,第二个是精确定位的权限,第三个是应用照相权限,第四个是往存储卡中写入数据的权限。3.4 类设计根据系统功能需求和系统设计需要确定类的操作,本系统有6个实体类,分别为管理员实体类(Admin)
22、、会员实体类(Member)、订单实体类(Orders)、订单详情实体类(DetailOrders)、商品实体类(Products)、商品详情实体类(DetailProducts)1、 客户端发送请求给服务器,服务器的后台Servlet负责处理数据。 2、 服务器业务逻辑处理会调用DAO,进行数据处理。 3、 调用实体类,把数据保存到数据库DB中。4、 DAO返回结果给Servlet。 5、 Servlet把结果返回给客户端。第四章 系 统 实 现4.1 Android客户端1. 系统登录:登陆模块界面如图所示,显示了一个登陆窗口,在其中加入许多控件,如文本输入框(EditText),文本显示
23、框(TextView),单选按钮(RaidoButton),复选按钮(CheckBox)等,然后用一系列的布局将其有条理的放在这个窗口中。当用户点击游客登陆时,将不会跟服务器的数据库进行匹配,直接进入主界面,代码如下: if (flag) / 当用户选择游客登陆时点击登陆按钮直接进入主界面 Intent intent = new Intent(LoginActivity.this, ProductListActivity.class); startActivity(intent); Intent intent1 = new Intent(LoginActivity.this,UpdateSer
24、vice.class);startService(intent1); 当用户点击会员登陆时,会把用户输入的数据跟服务器端数据库中的数据进行匹配,如果相同则登陆成功,否则弹出登陆失败的信息。如果用户点击了记住密码选项,则把用户输入的用户名和密码都保存到SharedPreferences中。代码如下: String name = etUsername.getText().toString().trim(); String password = etPassword.getText().toString().trim(); / 包装用户发送的用户数据 Member member = new Memb
25、er(name, password); protocolHelper.setObject(member); protocolHelper.setRequest(ProtocolHelper.REGISTER,ProtocolHelper.QUERY, member); result = protocolHelper.sendRequestVO(); / 向服务端发送数据 if (result.size() > 0) response = result.get(0);/ 根据服务端的相应信息进行相应判断 if (response != null) / 将用户名存在sharedPrefere
26、nces Editor namedata = sharedPreferences.edit(); namedata.putString("name", etUsername.getText().toString().trim();mit(); / 将密码存在sharedPreferences Editor passworddata = sharedPreferences.edit(); passworddata.putString("password", etPassword.getText().toString().trim(); mit(); / 登
27、录成功,进入主界面 else / 登录失败,弹出错误信息 2. 系统注册:当用户点击取消按钮时,界面会跳转回到登陆界面,当用户点击注册按钮时会跟服务器端的数据库进行连接,把用户所填的信息拼接发给服务器,服务器处理过后将数据插入到数据库中对应的表中。客户端实现注册代码如下:bRegister.setOnClickListener(new OnClickListener() public void onClick(View v) / 获取用户输入数据 if(name.equals("")|password.equals("")|repassword.equa
28、ls("") /如果用户输入用户名或密码为空,则给出提示,用户名和密码不能为空 else /如果不为空则先放入HashMap中,再做密码输入是否一致的判断 / 判断输入的密码是否一致 if (infoHashMap.get("password").equals( infoHashMap.get("repassword") / 拼凑数据 data = "name " + infoHashMap.get("username") + "" + "password &quo
29、t; + infoHashMap.get("password") +"" + "sex " + infoHashMap.get("sex") + "" + "num" + infoHashMap.get("number") + "" + "address " + infoHashMap.get("address"); Member member=new Member(name,password,i
30、nfoHashMap .get("sex"),number,address); protocolHelper.setObject(member); / 准备请求数据 protocolHelper.setRequest(ProtocolHelper.REGISTER,ProtocolHelper.INSERT, data); / 向服务端发送请求 response = protocolHelper.sendRequest(); / 判断响应信息,根据信息触发不同的事件 if (response.equals("success") / 跳转到主界面 else
31、 / 以对话框的形式给出错误信息 else / 以对话框的形式给出错误信息:密码必须一致3. 浏览商品:用户登陆成功或者选择游客登陆成功后,会直接进入到主界面,主界面的布局采用的是TabHost分页式布局,每一个Tab都对应一个Activity,通过addTab这个方法来添加Tab,这个控件让Android手机多个Activity共享一个界面,而且操作方便,简单,布局好看。当用户选择菜单选项时,在其下面将列出从服务器端发送过来菜品简要信息数据,客户端想要看到这些数据必须对它进行一系列的处理,在此,本模块采用了ListView来显示菜品信息,ListView是以列表的形式来展示具体内容,并且能够
32、根据数据的长度自适应的显示,要想ListView显示数据必须要为其添加适配器(Adapter),适配器分为很多种,有ArrayAdapter、SimpleAdapter、BaseAdapter等等,由于在该ListView中显示的数据比较多,而且还有图片信息等,所以在此采用BaseAdapter来构建适配器。 构建BaseAdapter核心代码:/ 菜单模块的自定义适配器。 class ProductAdapter extends BaseAdapter public View getView(int position, View convertView, ViewGroup parent)V
33、iewHolder viewHolder = null; / 如果convertView为空 则为其创建一个View if (convertView = null) LayoutInflater inflater = LayoutInflater.from(ctx); viewHolder = new ViewHolder(); convertView = inflater.inflate(R.layout.listitem, null); / 获得listitem布局中的控件并添加到View上 convertView.setTag(viewHolder); / 如果convertView不为
34、空 那么直接为其灌入数据 else viewHolder = (ViewHolder) convertView.getTag(); / 获得所有的数据并灌入convertView中 return convertView; 4. 搜索商品:如果菜品数量过多,用户将会很难找到自己心仪的菜品,在此,本项目为了方便用户选择特定的菜品,设计了一个搜索菜品的功能,通过搜索界面,用户可以通过商品名称、商家名称、商品价格三个搜索条件来搜索对自己胃口的菜品,该功能暂时仅支持单条件搜索,在此列出按商品名称搜索的核心代码,另外两种搜索代码跟此差不多。/ 通过商品名称模糊查询。 public void getProd
35、uctByName(String name) List productListByname = new ArrayList(); Cursor cursor = dbutil.querygoodsByName(name); int count = cursor.getCount(); cursor.moveToFirst(); if (count > 0) / 对菜品数据遍历查找 for (int i = 0; i < count; i+) HashMap map = new HashMap(); map.put("bid", cursor.getInt(0);
36、 map.put("bpicture", cursor.getString(4); map.put("bname", cursor.getString(1); map.put("bstyle", cursor.getString(2); map.put("bprice", cursor.getString(3); productListByname.add(map); cursor.moveToNext(); cursor.close(); productList = productListByname; sear
37、chAdapter.notifyDataSetChanged(); else / 提示没有找到要查询的菜品 5. 订餐:订餐功能是本项目的核心功能,前面做的那些仅仅是为订餐功能做铺垫。当用户点击每一行菜品时,不论这菜品时在菜品列表中还是在搜索列表中都会跳转到菜品详细信息界面,在跳转的同时,Intent里面会PutExtra菜品的数据,在详细信息界面中再将Intent里面的数据取出并显示。在该界面中显示了菜品的图片、价格、评分、是否有折扣、菜品详细介绍等菜品信息,还有两个按钮和输入订餐份数的文本输入框,该输入框只允许输入数字。如果用户选好了菜品,并且准备将菜品加入购物车时,用户首先得输入一个菜品
38、份数,并点击加入购物车按钮,这时系统将进行一系列的逻辑处理,如果购物车中没有物品则直接加入,如果购物车中已经有物品了,则将用户刚加入购物车的菜品数据跟购物车中原有的数据进行匹配,如果已经有了,那么将提示用户,该物品购物车里已有,反之则加入购物车public void onItemClick(AdapterView<?> parent, View view, int id, long position)if (position != -1) ViewHolder holder = (ViewHolder) view.getTag();TextView tvid = (TextView
39、) view.findViewById(R.id.tvid);TextView tvname = (TextView) view.findViewById(R.id.tvname);TextView tvprice = (TextView) view.findViewById(R.id.tvprice);Intent intent = new Intent(ProductListActivity.this,DetailsActivity.class);intent.putExtra("pic", (Bitmap) holder.ivpicture.getTag();inte
40、nt.putExtra("bid", tvid.getText().toString();intent.putExtra("bname", tvname.getText().toString();intent.putExtra("bprice", tvprice.getText().toString();startActivity(intent); Intent intent = getIntent();Bitmap pic=(Bitmap)intent.getParcelableExtra("pic");ivdi
41、sh=(ImageView)findViewById(R.id.ivdish);ivdish.setImageBitmap(pic); /获得商品id tvbid=intent.getStringExtra("bid"); / 获得菜名 bname= intent.getStringExtra("bname"); price =intent.getStringExtra("bprice");badd.setOnClickListener(new OnClickListener() public void onClick(View v)
42、 int count=ProductListActivity.cartdata.size();if(count>0)/表示购物车中有数据 for(int i=0;i<count;i+) String existid=(String)(HashMap) ProductListActivity.cartdata.get(i).get("bid");if(existid.equals(tvbid) /购物车中有相同的数据 else HashMap item = new HashMap(); item.put("bid", tvbid);item.p
43、ut("bprice", price);item.put("bname", bname); item.put("bnum", etinput.getText().toString(); data.add(item);/ 将HashMap添加到List中 else/购物车为空时直接添加 Intent intent =new Intent(DetailsActivity.this,ProductListActivity.class); intent.putExtra("changenum", etinput.getTe
44、xt().toString(); startActivity(intent); 6. 结账: 首先用户可以选中购物车中的物品,点击menu按钮对物品进行修改数量和删除操作。要实现Android menu功能必须重载onCreateOptionsMenu、onPrepareOptionsMenu以及onOptionsItemSelected三个方法,第一个方法是用来创建menu按钮显示的菜单项,第二个方法是限制菜单项只在购物车列表中显示,第三个方法则是实现菜单项功能的。在本模块中,为menu添加了两个菜单项,一个是修改数量,一个是删除,可以对购物车中物品的数量进行修改和删除操作,没选中物品则会提
45、示错误。 其次为每一条ListView添加了一个长点击事件,及setOnLongClickListener接口,在此接口中必须实现onClick方法,当用户点击物品不放时会直接将该选中物品删除。 最后点击结算按钮系统将会把订单中的数据进行封装,并使用protocolHelper中的sendRequest方法向服务器发送请求,并接受服务器端返回的消息,如果消息不为空则说明订单生成成功,提示用户订单生成,该方法代码如下:/ 使用ProtocolHelper的setRequest方法对请求类型,操作及传送来的数据data进行封装 helper.setObject(order); helper.set
46、Request(helper.ORDER, helper.INSERT, ""); / 使用ProtocolHelper的sendRequest方法对服务器发送请求并返回服务器发回得消息 String result = helper.sendRequest(); / 如果服务器返回消息不为null,则说明订单以生产成功,弹出提示 if (result != null && !result.equals("fail") Toast.makeText(ProductListActivity.this, "订单已生成,谢谢惠顾!", Toast.LENGTH_LONG).show(); List<Object> list = new ArrayList<Object>(); setList(list); / 创建适配器对象 cartadapter = new SimpleAdapter( ProductListActi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小学心理健康教育班会教案集
- 建筑工程资金监控系统建设方案
- 英语单词词组句子默写练习册
- 二年级数学知识点系统总结
- 建筑用预拌砂浆与传统砂浆对比分析
- 电大计算机基础操作题指导手册
- 建筑防水工程质量控制技术措施
- 医疗机构污水处理系统设计方案
- 公路施工机械安全操作标准
- 部编版二年级语文上册单元测评试题
- 【好题汇编】2023-2025年高考物理真题分类汇编 专题 机械振动与机械波(有解析)
- 2025年甘肃省兰州市中考英语试卷(含答案)
- 2025消化内镜室护士护理应知应会考核试题及答案
- 牙科种植与修复病例的多学科联合治疗
- 2025年党纪学习教育应知应会100条(含答案)【收藏学习】
- 冠心病防治科普知识
- 建筑工程企业管理案例
- 师承确有专长考试中药学功效表格记忆
- Unit1YouandMe单元知识清单-人教版七年级英语上册
- 2025年图书管理员职称考试试题及答案
- 初中物理作业设计与命题培训
评论
0/150
提交评论