毕业论文(基于Android的网上订餐系统和原代码)(7)

2019-04-14 12:46

湖南科技大学本科生毕业设计(论文)

} cursor.moveToNext(); } cursor.close(); productList = productListByname; searchAdapter.notifyDataSetChanged(); } else // 提示没有找到要查询的菜品 4.2.5 订餐

订餐功能是本项目的核心功能,前面做的那些仅仅是为订餐功能做铺垫。当用户点击每一行菜品时,不论这菜品时在菜品列表中还是在搜索列表中都会跳转到菜品详细信息界面,在跳转的同时,Intent里面会PutExtra菜品的数据,在详细信息界面中再将Intent里面的数据取出并显示。界面如图4.9,在该界面中显示了菜品的图片、价格、评分、是否有折扣、菜品详细介绍等菜品信息,还有两个按钮和输入订餐份数的文本输入框,该输入框只允许输入数字。如果用户选好了菜品,并且准备将菜品加入购物车时,用户首先得输入一个菜品份数,并点击加入购物车按钮,这时系统将进行一系列的逻辑处理,如果购物车中没有物品则直接加入,如果购物车中已经有物品了,则将用户刚加入购物车的菜品数据跟购物车中原有的数据进行匹配,如果已经有了,那么将提示用户,该物品购物车里已有,反之则加入购物车。

图4.9 菜品详情

在此列出跳转界面时对数据处理的代码:

- 26 -

湖南科技大学本科生毕业设计(论文)

菜品行点击事件,把数据putExtra到Intent中

public void onItemClick(AdapterView parent, View view, int id, long position) { if (position != -1) { ViewHolder holder = (ViewHolder) view.getTag(); TextView tvid = (TextView) 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(\ intent.putExtra(\ intent.putExtra(\ intent.putExtra(\ startActivity(intent); 在详细信息界面中取出Intent里面的数据代码: Intent intent = getIntent(); Bitmap pic=(Bitmap)intent.getParcelableExtra(\ ivdish=(ImageView)findViewById(R.id.ivdish); ivdish.setImageBitmap(pic); //获得商品id tvbid=intent.getStringExtra(\// 获得菜名 bname= intent.getStringExtra(\price =intent.getStringExtra(\将菜品添加到购物车中代码: badd.setOnClickListener(new OnClickListener() { public void onClick(View v) { int count=ProductListActivity.cartdata.size(); if(count>0)//表示购物车中有数据 { for(int i=0;i

湖南科技大学本科生毕业设计(论文)

item.put(\item.put(\item.put(\data.add(item);// 将HashMap添加到List中 else//购物车为空时直接添加 Intent intent =new Intent(DetailsActivity.this,ProductListActivity.class); intent.putExtra(\startActivity(intent); 4.2.6 结账

当然,订餐完成之后就得去购物车模块进行结账操作。

首先用户可以选中购物车中的物品,点击menu按钮对物品进行修改数量和删除操作。要实现Android menu功能必须重载onCreateOptionsMenu、onPrepareOptionsMenu以及onOptionsItemSelected三个方法,第一个方法是用来创建menu按钮显示的菜单项,第二个方法是限制菜单项只在购物车列表中显示,第三个方法则是实现菜单项功能的。在本模块中,为menu添加了两个菜单项,一个是修改数量,一个是删除,可以对购物车中物品的数量进行修改和删除操作,没选中物品则会提示错误。

其次为每一条ListView添加了一个长点击事件,及setOnLongClickListener接口,在此接口中必须实现onClick方法,当用户点击物品不放时会直接将该选中物品删除。

最后点击结算按钮系统将会把订单中的数据进行封装,并使用protocolHelper中的sendRequest方法向服务器发送请求,并接受服务器端返回的消息,如果消息不为空则说明订单生成成功,提示用户订单生成,该方法代码如下:

// 使用ProtocolHelper的setRequest方法对请求类型,操作及传送来的数据data进行封装 helper.setObject(order); helper.setRequest(helper.ORDER, helper.INSERT, \String result = helper.sendRequest(); if (result != null && !result.equals(\ Toast.makeText(ProductListActivity.this, \订单已生成,谢谢惠顾!!!\// 使用ProtocolHelper的sendRequest方法对服务器发送请求并返回服务器发回得消息 // 如果服务器返回消息不为null,则说明订单以生产成功,弹出提示 Toast.LENGTH_LONG).show(); List list = new ArrayList(); setList(list); // 创建适配器对象 cartadapter = new SimpleAdapter( ProductListActivity.this, cartdata, - 28 -

湖南科技大学本科生毕业设计(论文)

R.layout.cartlist, new String[] { \ \ R.id.markid, R.id.shopname, R.id.price, R.id.number }); // 设置listview的适配器 cartlistView.setAdapter(cartadapter); 客户端的基本功能介绍到此结束了,接下来介绍服务器端的功能实现。 4.3 服务端

服务端分为管理员登陆、订单管理、菜品管理、会员管理四个模块,主要是为商家对客户端发送过来的数据进行处理,以及对客户端的数据进行更新操作。服务端代码是用JavaSE来实现,下面对每一个模块进行详细分析。 4.3.1 系统登录

当管理员运行程序后,必须得进行登录认证,在服务器端数据库的用户表中有一个用户权限的字段,如果值为0则表示为管理员账号,如果值为1则表示用户账号,在此模块中仅仅为管理员提供登录功能,并不支持管理员注册功能,所以管理员是唯一的,这也是系统数据安全性的一种表现。登录界面如图4.10所示,管理员点击登陆时如果用户名和密码输入错误则会弹出错误信息,输入正确则进入管理界面。

图4.10 管理员登陆界面

在该模块中核心代码在于获取用户输入的信息并跟数据库中管理员的信息进行匹配,代码如下:

public void actionPerformed(ActionEvent e) { if (e.getActionCommand().equals(\ if (jt_password.getText().toString().equals(\ | jt_username.getText().toString().equals(\ JOptionPane.showMessageDialog(null, \用户名或密码不能为空\} else { AdminDAO admin = new AdminDAO(\- 29 -

湖南科技大学本科生毕业设计(论文)

String logo = admin.loginAdmins(jt_username.getText().toString(), jt_password.getText().toString()); if (logo.equals(\ login.dispose(); MainJframe.getInstance(); } else { JOptionPane.showMessageDialog(null, \用户名或密码错误\} else if (e.getActionCommand().equals(\ System.exit(0);}} 4.3.2 订单管理

当管理员登陆成功后,那么就进入了管理界面,在该界面中采用了JavaSE的卡片布局方式,这个布局方式跟客户端主界面的布局方式差不多,也是多个面板共用一个框架。在管理界面中,将管理员操作数据的方式分为了订单管理、菜品管理、会员管理三个模块,首先介绍一下订单管理模块的设计与实现。

在订单管理模块中,从上到下分为三个部分,最上面是查看订单按钮,中间是订单的一些基本信息表结构,有订单编号、订单生成时间、请求人姓名、请求人联系方式、订单状态,这里主要是使用DefaultTableModle来实现这样一个表结构,最下面是一个查询订单详细信息的按钮,如图4.11。

当管理员点击查看订单时,系统将会从数据库中将订单表的信息取出并放入到DefaultTableModle里面一遍管理员对订单进行查看。当管理员选中一行订单信息,再点击查看订单详细信息按钮时,将会弹出一个订单详情对话框,如图4.12所示,在该对话框中显示了订单中的信息,以及一个订单完成的按钮,如果交易完成,在这里的交易完成的定义是商家把菜品做好,送到用户的地址并且用户付清所有费用,则管理员点击该按钮,将会弹出订单完成消息框,并且将此订单从订单管理界面中移除。

- 30 -


毕业论文(基于Android的网上订餐系统和原代码)(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

Copyright © 2019-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18

× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: