版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Android实训报告班级:10级软件技术学号:姓名:指导老师:
目录1无线点餐系统的背景和意义 32功能模块的设计 32.1客户端 32.2数据库 33主要任务 54模块操作 54.1登陆模块客户端实现 54.2登录模块服务器端实现 64.3程序主菜单实现 74.4点餐功能客户端实现 74.5点餐功能服务器端实现 85附录: 8
1无线点餐系统的背景和意义餐饮传统的点菜方式是纯人工操作,由服务员记录顾客点的菜,在具体工作中容易出现问题。因此,无限点餐模式应运而生。它不仅可以有效地提高餐饮业的工作效率,更可以规模服务体系,提高整体服务质量和管理水平,并为规模化经营提供了坚实的技术基础。2功能模块的设计2.1客户端客户端主要有以下几个模块构成:登陆、点餐、更新、结账等功能。结构图:无线点餐系统无线点餐系统登陆点菜更新结账查台转台并台开桌点菜更新菜谱更新桌号2.2数据库客户端采用SQLite数据库,服务器采用MySQL数据库,并提供了客户端数据和服务器端数据和服务器端数据的同步功能,提高了程序的运行效率。创建了6张表分别是:系统用户表(UserTbl)、菜谱分类表(MenuTypeTbl)、餐桌表(TableTbl)、菜谱表(MenuTbl)、订单表(OrderTbl)、订单明细表。系统用户表:登陆系统使用。菜谱分类表:方便点餐,将菜单信息进行分类,如热菜、凉菜等。餐桌表:用来表示顾客在哪个桌位就坐。菜谱表:菜谱表用来保存菜信息,如分类、名称和价格等。订单表:当顾客开桌点菜时生成的信息,保存到该表。订单明细表:订单明细表和上面的订单表是一对多的关系,即一桌客人点了多份菜。3主要任务 无线点餐系统的登陆、点餐模块的客户端与服务器端和程序主菜单的实现部分。4模块操作4.1登陆模块客户端实现1.创建一个Android工程,名为“WirelessOrder_Client”。2.在res\layout目录下,创建“login_system.xml”的布局文件,布局文件外层使用LinearLayout布局,内嵌TableLayout完成布局管理。布局文件引用一个图片资源来显示背景图片、俩个TextView用来显示用户名称和密码、两个EditText用来输入用户名和密码、两个Button用来登陆和取消系统。代码均见附录!3.创建名为“LoginActivity”的Acivity,在类的顶部声明所用的EditText和Button组件,在onCreate()方法中调用setContenView(R.layout.login_system)方法设置布局视图。通过findViewById()方法实例化EditText和Button对象。4.定义一个工具类HttpUtil来获得HttpRequest对象和HttpResponse对象,以及发送get和post请求获得返回response信息的方法。5.定义一个显示提示信息的对话框方法,用来显示提示信息。6.定义validate()方法,对用户名称和密码进行非空验证。7.定义一个query()方法,通过用户名称和密码尽心查询,发送Post请求,获得响应结果。8.定义login()方法,该方法调用query()方法,获得查询结果,并将查询结果通过SharedPrerences保存到XML配置文件,以便在后面程序的点餐中使用用户信息。Login()方法调用saveUserMsg()方法将用户信息保存到配置文件。9.为登录按钮添加单击监听器,在onClick()方法中,首先调用calidate()方法进行验证,如果验证通过再调用login()方法,如果登录成功,系统进入主菜单界面,否则提示登录失败信息。如果验证失败则提示失败信息,请求用户重新输入。10.为取消按钮添加单击监听器,在onClick()方法中调用finish()方法结束该Activity。运行结果如图:4.2登录模块服务器端实现创建一个名为“WirelessOrder_server”的Web工程。创建程序需要的包结构。dao包用于放置采用DAO设计模式实现的访问数据库接口及其实现类;entity包用于放置对应数据库表的实体类;servlet包用于放置Servlet类;filter包用于放置过滤器;util包是工具类。程序要访问MySQL数据库,所以要添加MySQL驱动包“mysql-connector-java-5.0.3-bin.jar”。将该jar文件添加到工程的classpath下。创建访问数据库的工具类DBUtil,该类的主要功能是打开和关闭数据库连接。将配置信息保存到配置文件中,这样可以在不修改程序的前提下移植数据库。创建用于封装UserTbl表信息的实体类User类。创建访问数据库的DAO接口类UserDao。创建UserDao接口实现类UserDaoImpl。创建LoginServlet类响应请求。该类通过request.getParameter()方法获得请求参数,调用UserDaoImpl的login()方法,并根据登陆结果返回响应结果信息。4.3程序主菜单实现在工程的res\layout\目录下创建一个布局文件,该布局文件外层是LinearLayout,使用一个图片资源充当背景色,内层是一个GridView。创建“MainMenuActivity”的Acivity,在onCreate()方法中设置Acivity界面标题和布局,实例化GridView组件,为GridView绑定Adapter。定义一个名称为“ImageAdapter”的类,该类集成BaseAdapter,为GridView设置Adapter。定义一个单击监听器,打开点餐界面。4.4点餐功能客户端实现在工程的res\layout\目录下创建一个名称为“order.xml”的布局文件,该文件外层使用LinearLayout布局,内层嵌套TableLayout。TableLayout中有三行:第一行TextView和一个Spinner,提示操作员选择课桌号;第二行TextView和EditText,要求永华输入人数;第三行3个Button,分别是开桌,点菜和下单,TableLayout下面有一个ListView用来显示客户点菜列表。创建“OrderAcivity”的Activity,该Activity集成Acitivity,在OderActivity顶部声明使用到的实例,在OnCreate方法中初始化之。开桌功能,要求操作员选择桌号并输入人数,并将这些信息保存到服务器端MySQL数据库中的OrderTbl表中。这里需要为桌号下拉列表Spinner绑定数据,为开桌按钮添加监听器,实现具体操作。点菜功能。单击点菜按钮,弹出点菜对话框,要求输入点菜信息。定义一个View视图,添加到对话框,并且自定义视图中有一个Spinner引用菜单列表数据。在res\layout\目录下创建“order_detail.xml”的布局文件,外层是LinearLayout,内层嵌套TableLayout。程序运行结果如图:4.5点餐功能服务器端实现在“WirelessOrder_Server”工程的“com.amaker.entity”包中创建一个实体类Order,该类封装了数据中OrderTbl表的信息,以面向对象的方法来操作该表。在该包中创建实体类OrderDetail,该类封装了数据库中QueryOrderDetail表的信息,以面向对象的方法来操作该表。在“com.amaker.dao”包中创建一个OrderDao接口,有四个方法,分别用来保存订单信息Order、保存订单详细信息OrderDetail、更新桌号状态为有人和更新桌号状态为空位。在“com.amaker.dao.impl”包中创建OrderDaoImpl的实现类实现OrderDao接口里定义的方法。在“com.amaker.servlet”包中创建一个名称“StarTableServlet”的Servlet,响应客户端请求,调用后台数据,保存数据,更新餐桌状态。5附录:login_system.xml<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/login" > <TableLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:stretchColumns="1"> <TableRow> <TextViewandroid:text=""/> <TextViewandroid:text=""/> </TableRow> <TableRow> <TextViewandroid:text=""/> <TextViewandroid:text=""/> </TableRow> <TableRow> <TextViewandroid:text=""/> <TextViewandroid:text=""/> </TableRow> <TableRow> <TextViewandroid:text=""/> <TextViewandroid:text=""/> </TableRow> <TableRow> <TextViewandroid:text=""/> <TextViewandroid:text=""/> </TableRow> <TableRow> <TextViewandroid:text=""/> <TextViewandroid:text=""/> </TableRow> <TableRow> <TextViewandroid:text=""/> <TextViewandroid:text=""/> </TableRow> <TableRow> <TextView android:text="用户名称:" android:id="@+id/TextView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#0000ff" /> <EditText android:text="" android:id="@+id/userEditText" android:layout_width="fill_parent" android:layout_height="wrap_content"/> </TableRow> <TableRow> <TextView android:text="用户密码:" android:id="@+id/TextView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#0000ff" /> <EditText android:text="" android:id="@+id/pwdEditText" android:layout_width="fill_parent" android:layout_height="wrap_content" android:password="true"/> </TableRow> <TableRow android:gravity="right"> <Button android:text="取消" android:id="@+id/cancelButton" android:layout_width="wrap_content" android:layout_height="wrap_content"/> <Button android:text="登陆" android:id="@+id/loginButton" android:layout_width="wrap_content" android:layout_height="wrap_content"/> </TableRow> </TableLayout></LinearLayout>LoginActivitypackagecom.amaker.wlo;importandroid.app.Activity;importandroid.app.AlertDialog;importandroid.content.DialogInterface;importandroid.content.Intent;importandroid.content.SharedPreferences;importandroid.os.Bundle;importandroid.view.View;importandroid.view.View.OnClickListener;importandroid.widget.Button;importandroid.widget.EditText;importandroid.widget.Toast;importcom.amaker.util.HttpUtil;publicclassLoginActivityextendsActivity{ //声明登录、取消按钮 privateButtoncancelBtn,loginBtn; //声明用户名、密码输入框 privateEditTextuserEditText,pwdEditText; @Override publicvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); //设置标题 setTitle("掌中宝无线订餐系统-用户登录"); //设置当前Activity界面布局 setContentView(R.layout.login_system); //通过findViewById方法实例化组件 cancelBtn=(Button)findViewById(R.id.cancelButton); //通过findViewById方法实例化组件 loginBtn=(Button)findViewById(R.id.loginButton); //通过findViewById方法实例化组件 userEditText=(EditText)findViewById(R.id.userEditText); //通过findViewById方法实例化组件 pwdEditText=(EditText)findViewById(R.id.pwdEditText); cancelBtn.setOnClickListener(newOnClickListener(){ @Override publicvoidonClick(Viewv){ finish(); } }); loginBtn.setOnClickListener(newOnClickListener(){ @Override publicvoidonClick(Viewv){ if(validate()){ if(login()){ Intentintent=newIntent(LoginActivity.this,MainMenuActivity.class); startActivity(intent); }else{ showDialog("用户名称或者密码错误,请重新输入!"); } } } }); } //登录方法 privatebooleanlogin(){ //获得用户名称 Stringusername=userEditText.getText().toString(); //获得密码 Stringpwd=pwdEditText.getText().toString(); //获得登录结果 Stringresult=query(username,pwd); if(result!=null&&result.equals("0")){ returnfalse; }else{ saveUserMsg(result); returntrue; } } //将用户信息保存到配置文件 privatevoidsaveUserMsg(Stringmsg){ //用户编号 Stringid=""; //用户名称 Stringname=""; //获得信息数组 String[]msgs=msg.split(";"); intidx=msgs[0].indexOf("="); id=msgs[0].substring(idx+1); idx=msgs[1].indexOf("="); name=msgs[1].substring(idx+1); //共享信息 SharedPreferencespre=getSharedPreferences("user_msg",MODE_WORLD_WRITEABLE); SharedPreferences.Editoreditor=pre.edit(); editor.putString("id",id); editor.putString("name",name); mit(); } //验证方法 privatebooleanvalidate(){ Stringusername=userEditText.getText().toString(); if(username.equals("")){ showDialog("用户名称是必填项!"); returnfalse; } Stringpwd=pwdEditText.getText().toString(); if(pwd.equals("")){ showDialog("用户密码是必填项!"); returnfalse; } returntrue; } privatevoidshowDialog(Stringmsg){ AlertDialog.Builderbuilder=newAlertDialog.Builder(this); builder.setMessage(msg) .setCancelable(false) .setPositiveButton("确定",newDialogInterface.OnClickListener(){ publicvoidonClick(DialogInterfacedialog,intid){ } }); AlertDialogalert=builder.create(); alert.show(); } //根据用户名称密码查询 privateStringquery(Stringaccount,Stringpassword){ //查询参数 StringqueryString="account="+account+"&password="+password; //url Stringurl=HttpUtil.BASE_URL+"servlet/LoginServlet?"+queryString; //查询返回结果 returnHttpUtil.queryStringForPost(url);}}HttpUtilpackagecom.amaker.util;importjava.io.IOException;importorg.apache.http.HttpResponse;importorg.apache.http.client.ClientProtocolException;importorg.apache.http.client.methods.HttpGet;importorg.apache.http.client.methods.HttpPost;importorg.apache.http.impl.client.DefaultHttpClient;importorg.apache.http.util.EntityUtils;publicclassHttpUtil{ //基础URL publicstaticfinalStringBASE_URL=":8888/WirelessOrder_Server/"; //获得Get请求对象request publicstaticHttpGetgetHttpGet(Stringurl){ HttpGetrequest=newHttpGet(url); returnrequest; } //获得Post请求对象request publicstaticHttpPostgetHttpPost(Stringurl){ HttpPostrequest=newHttpPost(url); returnrequest; } //根据请求获得响应对象response publicstaticHttpResponsegetHttpResponse(HttpGetrequest)throwsClientProtocolException,IOException{ HttpResponseresponse=newDefaultHttpClient().execute(request); returnresponse; } //根据请求获得响应对象response publicstaticHttpResponsegetHttpResponse(HttpPostrequest)throwsClientProtocolException,IOException{ HttpResponseresponse=newDefaultHttpClient().execute(request); returnresponse; } //发送Post请求,获得响应查询结果 publicstaticStringqueryStringForPost(Stringurl){ //根据url获得HttpPost对象 HttpPostrequest=HttpUtil.getHttpPost(url); Stringresult=null; try{ //获得响应对象 HttpResponseresponse=HttpUtil.getHttpResponse(request); //判断是否请求成功 if(response.getStatusLine().getStatusCode()==200){ //获得响应 result=EntityUtils.toString(response.getEntity()); returnresult; } }catch(ClientProtocolExceptione){ e.printStackTrace(); result="网络异常!"; returnresult; }catch(IOExceptione){ e.printStackTrace(); result="网络异常!"; returnresult; }returnnull;} //获得响应查询结果 publicstaticStringqueryStringForPost(HttpPostrequest){ Stringresult=null; try{ //获得响应对象 HttpResponseresponse=HttpUtil.getHttpResponse(request); //判断是否请求成功 if(response.getStatusLine().getStatusCode()==200){ //获得响应 result=EntityUtils.toString(response.getEntity()); returnresult; } }catch(ClientProtocolExceptione){ e.printStackTrace(); result="网络异常!"; returnresult; }catch(IOExceptione){ e.printStackTrace(); result="网络异常!"; returnresult; }returnnull;} //发送Get请求,获得响应查询结果 publicstaticStringqueryStringForGet(Stringurl){ //获得HttpGet对象 HttpGetrequest=HttpUtil.getHttpGet(url); Stringresult=null; try{ //获得响应对象 HttpResponseresponse=HttpUtil.getHttpResponse(request); //判断是否请求成功 if(response.getStatusLine().getStatusCode()==200){ //获得响应 result=EntityUtils.toString(response.getEntity()); returnresult; } }catch(ClientProtocolExceptione){ e.printStackTrace(); result="网络异常!"; returnresult; }catch(IOExceptione){ e.printStackTrace(); result="网络异常!"; returnresult; }returnnull;}}DBCpertiesdriver=com.mysql.jdbc.Driverurl=jdbc:mysql://localhost:3306/wireless_db?useUnicode=true&characterEncoding=utf-8username=rootpassword=1DBUtilpackagecom.amaker.util;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.SQLException;importjava.util.Properties;/****@authorhz.guo* 数据库工具类*/publicclassDBUtil{ /* *关闭数据库连接 */ publicvoidcloseConn(Connectionconn){ try{ conn.close(); }catch(SQLExceptione){ e.printStackTrace(); } } /* *打开数据库连接 */ publicConnectionopenConnection(){ Propertiesprop=newProperties(); Stringdriver=null; Stringurl=null; Stringusername=null; Stringpassword=null; try{ prop.load(this.getClass().getClassLoader().getResourceAsStream( "DBCperties")); driver=prop.getProperty("driver"); url=prop.getProperty("url"); username=prop.getProperty("username"); password=prop.getProperty("password"); Class.forName(driver); returnDriverManager.getConnection(url,username,password); }catch(Exceptione){ e.printStackTrace(); } returnnull; }}UserTblpackagecom.amaker.entity;/****@authorhz.guo* 用于封装UserTbl表的实体类*/publicclassUser{ //编号 privateintid; //账号 privateStringaccount; //密码 privateStringpassword; //用户名称 privateStringname; //性别 privateStringgender; //权限 privateintpermission; //备注 privateStringremark; publicStringgetAccount(){ returnaccount; } publicvoidsetAccount(Stringaccount){ this.account=account; } publicStringgetGender(){ returngender; } publicvoidsetGender(Stringgender){ this.gender=gender; } publicintgetId(){ returnid; } publicvoidsetId(intid){ this.id=id; } publicStringgetName(){ returnname; } publicvoidsetName(Stringname){ =name; } publicStringgetPassword(){ returnpassword; } publicvoidsetPassword(Stringpassword){ this.password=password; } publicintgetPermission(){ returnpermission; } publicvoidsetPermission(intpermission){ this.permission=permission; } publicStringgetRemark(){ returnremark; } publicvoidsetRemark(Stringremark){ this.remark=remark; }}UserDaoImplpackagecom.amaker.dao.impl;importjava.sql.Connection;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.SQLException;importcom.amaker.dao.UserDao;importcom.amaker.entity.User;importcom.amaker.util.DBUtil;/****@author郭宏志*用户登录DAO实现类*/publicclassUserDaoImplimplementsUserDao{ /** *通过用户名称和密码登录,登录成功返回User对象,登录失败返回null */ publicUserlogin(Stringaccount,Stringpassword){ //查询SQL语句 Stringsql="selectid,account,password,name,permission,remark"+ "fromuserTbl"+ "whereaccount=?andpassword=?"; //数据库连接工具类 DBUtilutil=newDBUtil(); //获得连接 Connectionconn=util.openConnection(); try{ //获得预定义语句 PreparedStatementpstmt=conn.prepareStatement(sql); //设置查询参数 pstmt.setString(1,account); pstmt.setString(2,password); //执行查询 ResultSetrs=pstmt.executeQuery(); //判断用户是否存在 if(rs.next()){ //获得用户信息 intid=rs.getInt(1); Stringname=rs.getString(4); intpermission=rs.getInt(5); Stringremark=rs.getString(6); //封装用户信息 Useru=newUser(); u.setId(id); u.setAccount(account); u.setPassword(password); u.setName(name); u.setPermission(permission); u.setRemark(remark); returnu; } }catch(SQLExceptione){ e.printStackTrace(); }finally{ util.closeConn(conn); } returnnull; } publicstaticvoidmain(String[]args){ UserDaodao=newUserDaoImpl(); Useru=dao.login("admin","123"); System.out.println(u.getAccount()); }}LoginServletpackagecom.amaker.servlet;importjava.io.IOException;importjava.io.PrintWriter;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importcom.amaker.dao.UserDao;importcom.amaker.dao.impl.UserDaoImpl;importcom.amaker.entity.User;/****@author郭宏志*响应Android客户端发来的请求*/publicclassLoginServletextendsHttpServlet{ publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ response.setContentType("text/html"); PrintWriterout=response.getWriter(); UserDaodao=newUserDaoImpl(); //获得客户端请求参数 Stringusername=request.getParameter("account"); Stringpassword=request.getParameter("password"); Useru=dao.login(username,password); if(u!=null){ //响应客户端内容,登录成功 out.print(build(u)); }else{ //响应客户端内容,登录失败 out.print("0"); } out.flush(); out.close(); } privateStringbuild(Useru){ StringuserMsg=""; userMsg+="id="+u.getId(); userMsg+=";"; userMsg+="name="+u.getName(); returnuserMsg; } publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ doGet(request,response); } publicvoidinit()throwsServletException{ } publicLoginServlet(){ super(); } publicvoiddestroy(){ super.destroy(); }}main_menu.xml<?xmlversion="1.0"encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android" android:background="@drawable/menu_bg" android:layout_width="fill_parent"android:layout_height="fill_parent"><GridViewandroid:id="@+id/gridview"android:layout_width="fill_parent"android:layout_height="fill_parent"android:numColumns="auto_fit"android:verticalSpacing="10dp"android:horizontalSpacing="10dp"android:columnWidth="90dp"android:stretchMode="columnWidth"android:gravity="center"/></LinearLayout>MainMenuActivitypackagecom.amaker.wlo;importcom.amaker.util.HttpUtil;publicclassMainMenuActivityextendsActivity{@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setTitle("掌中宝无线订餐系统-主菜单");setContentView(R.layout.main_menu);GridViewgridview=(GridView)findViewById(R.id.gridview);gridview.setAdapter(newImageAdapter(this));}//继承BaseAdapterpublicclassImageAdapterextendsBaseAdapter{ //上下文privateContextmContext;//构造方法publicImageAdapter(Contextc){mContext=c;}//组件个数publicintgetCount(){returnmThumbIds.length;}//当前组件publicObjectgetItem(intposition){returnnull;}//当前组件idpubliclonggetItemId(intposition){return0;}//获得当前视图publicViewgetView(intposition,ViewconvertView,ViewGroupparent){ //声明图片视图ImageViewimageView;if(convertView==null){ //实例化图片视图imageView=newImageView(mContext);//设置图片视图属性imageView.setLayoutParams(newGridView.LayoutParams(85,85));imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);imageView.setPadding(8,8,8,8);}else{imageView=(ImageView)convertView;}//设置图片视图图片资源imageView.setImageResource(mThumbIds[position]);//为当前视图添加监听器switch(position){ case0: //添加点餐监听器 imageView.setOnClickListener(orderLinstener); break; case1: //并台监听器 imageView.setOnClickListener(unionTableLinstener); break; case2: //添加转台监听器 imageView.setOnClickListener(changeTableLinstener); break; case3: //添加查台监听器 imageView.setOnClickListener(checkTableLinstener); break; case4: //添加更新监听器 imageView.setOnClickListener(updateLinstener); break; case6: //添加注销监听器 imageView.setOnClickListener(exitLinstener); break; case7: //添加结算监听器 imageView.setOnClickListener(payLinstener); break; default: break; }returnimageView;}//图片资源数组privateInteger[]mThumbIds={R.drawable.diancai,R.drawable.bingtai,R.drawable.zhuantai,R.drawable.chatai,R.drawable.gengxin,R.drawable.shezhi,R.drawable.zhuxiao,R.drawable.jietai};}//更新监听器OnClickListenerupdateLinstener=newOnClickListener(){ @Override publicvoidonClick(Viewv){ Intentintent=newIntent(); //启动结算Activity intent.setClass(MainMenuActivity.this,UpdateActivity.class); startActivity(intent); } };//查台监听器OnClickListenercheckTableLinstener=newOnClickListener(){ @Override publicvoidonClick(Viewv){ Intentintent=newIntent(); //启动结算Activity intent.setClass(MainMenuActivity.this,CheckTableActivity.class); startActivity(intent); } };//结算监听器OnClickListenerpayLinstener=newOnClickListener(){ @Override publicvoidonClick(Viewv){ Intentintent=newIntent(); //启动结算Activity intent.setClass(MainMenuActivity.this,PayActivity.class); startActivity(intent); } };//订餐监听器OnClickListenerorderLinstener=newOnClickListener(){ @Override publicvoidonClick(Viewv){ Intentintent=newIntent(); //启动订餐Activity intent.setClass(MainMenuActivity.this,OrderActivity.class); startActivity(intent); } }; //注销监听器OnClickListenerexitLinstener=newOnClickListener(){ @Override publicvoidonClick(Viewv){ logout(); } }; //转台监听器OnClickListenerchangeTableLinstener=newOnClickListener(){ @Override publicvoidonClick(Viewv){ changeTable(); } }; //并台监听器OnClickListenerunionTableLinstener=newOnClickListener(){ @Override publicvoidonClick(Viewv){ unionTable(); } }; //换台系统 privatevoidchangeTable(){ //获得LayoutInflater实例 LayoutInflaterinflater=LayoutInflater.from(this); //获得LinearLayout视图实例 Viewv=inflater.inflate(R.layout.change_table,null); //从LinearLayout中获得EditText实例 finalEditTextet1=(EditText)v.findViewById(R.id.change_table_order_number_EditText); finalEditTextet2=(EditText)v.findViewById(R.id.change_table_no_EditText); AlertDialog.Builderbuilder=newAlertDialog.Builder(this); builder.setMessage("真的要换桌位吗?") .setCancelable(false) .setView(v) .setPositiveButton("确定",newDialogInterface.OnClickListener(){ publicvoidonClick(DialogInterfacedialog,intid){ //获得订单号 StringorderId=et1.getText().toString(); //获得桌号 StringtableId=et2.getText().toString(); //查询参数 StringqueryString="orderId="+orderId+"&tableId="+tableId; //url Stringurl=HttpUtil.BASE_URL+"servlet/ChangeTableServlet?"+queryString; //查询返回结果 Stringresult=HttpUtil.queryStringForPost(url); //显示结果 Toast.makeText(MainMenuActivity.this,result,Toast.LENGTH_LONG).show(); } }) .setNegativeButton("取消",newDialogInterface.OnClickListener(){ publicvoidonClick(DialogInterfacedialog,intid){ dialog.cancel(); } }); AlertDialogalert=builder.create(); alert.show(); } //并台系统 privatevoidunionTable(){ //实例化LayoutInflater LayoutInflaterinflater=LayoutInflater.from(this); //获得自定义视图 Viewv=inflater.inflate(R.layout.union_table,null); //获得Spinner finalSpinnerspinner1=(Spinner)v.findViewById(R.id.union_table_Spinner1); finalSpinnerspinner2=(Spinner)v.findViewById(R.id.union_table_Spinner2); //访问服务器的URL StringurlStr=HttpUtil.BASE_URL+"servlet/UnionTableServlet"; try{ //实例化URL URLurl=newURL(urlStr); //URLConnection实例 URLConnectionconn=url.openConnection(); //获得输入流 InputStreamin=conn.getInputStream(); //获得DocumentBuilderFactory对象 DocumentBuilderFactoryfactory=DocumentBuilderFactory .newInstance(); //获得DocumentBuilder对象 DocumentBuilderbuilder=factory.newDocumentBuilder(); //获得Document对象 Documentdoc=builder.parse(in); //获得节点列表 NodeListnl=doc.getElementsByTagName("table"); //Spinner数据 Listitems=newArrayList(); //获得XML数据 for(inti=0;i<nl.getLength();i++){ //桌位编号 Stringid=doc.getElementsByTagName("id") .item(i).getFirstChild().getNodeValue(); //桌号 intnum=Integer.parseInt(doc.getElementsByTagName("num") .item(i).getFirstChild().getNodeValue()); Mapdata=newHashMap(); data.put("id",id); items.add(data); } //获得SpinnerAdapter SpinnerAdapteras=new SimpleAdapter(this,items, android.R.layout.simple_spinner_item, newString[]{"id"},newint[]{android.R.id.text1}); //绑定数据 spinner1.setAdapter(as); spinner2.setAdapter(as); }catch(Exceptione){ e.printStackTrace(); } AlertDialog.Builderbuilder=newAlertDialog.Builder(this); builder.setMessage("真的要并桌吗?") .setCancelable(false) .setView(v) .setPositiveButton("确定",newDialogInterface.OnClickListener(){ publicvoidonClick(DialogInterfacedialog,intid){ TextViewtv1=(TextView)spinner1.getSelectedView(); TextViewtv2=(TextView)spinner2.getSelectedView(); StringtableId1=tv1.getText().toString(); StringtableId2=tv2.getText().toString(); //查询参数 StringqueryString="tableId1="+tableId1+"&tableId2="+tableId2; //url Stringurl=HttpUtil.BASE_URL+"servlet/UnionTableServlet2?"+queryString; //查询返回结果 Stringresult=HttpUtil.queryStringForPost(url); } }) .setNegativeButton("取消",newDialogInterface.OnClickListener(){ publicvoidonClick(DialogInterfacedialog,intid){ dialog.cancel(); } }); AlertDialogalert=builder.create(); alert.show(); } //退出系统 privatevoidlogout(){ AlertDialog.Builderbuilder=newAlertDialog.Builder(this); builder.setMessage("真的要退出系统吗?") .setCancelable(false) .setPositiveButton("确定",newDialogInterface.OnClickListener(){ publicvoidonClick(DialogInterfacedialog,intid){ SharedPreferencespres=getSharedPreferences("user_msg",MODE_WORLD_WRITEABLE); SharedPreferences.Editoreditor=pres.edit(); editor.putString("id",""); editor.putString("name",""); Intentintent=newIntent(); intent.setClass(MainMenuActivity.this,LoginActivity.class); startActivity(intent); } }) .setNegativeButton("取消",newDialogInterface.OnClickListener(){
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度车辆尾号竞拍合同
- 2024年度旅游服务合同(含定制旅行方案和品质保障)
- 2024年度技术转让合同:专利技术的购买与授权
- 2024年度饭店财务管理与审计合同
- 2024年度玻璃幕墙工程维护合同
- 2024年度智慧物流解决方案提供合同
- 抖音用户增长服务合同
- 2024年度临时广告发布合同
- 2024年度北京车牌租赁合同示范
- 亲子经典诵读互动方案
- 广东省深圳市五年级上学期科学期中试卷三(含答案)
- 【核心素养】人音版三年级上册第2课《我是草原小牧民》教案
- 【核心素养目标】4.1 光的直线传播(教学设计)人教版八年级物理上册
- 《劳动创造幸福奋斗成就梦想》主题班会
- 牛津译林版英语2024七年级上册全册单元知识清单(记忆版)
- 2024小学道德与法治新教材培训:教材解读及教学建议
- 2024-2025学年山西省太原市数学高三上学期模拟试卷与参考答案
- 3.16谣言止于智者-正确处理同学关系班会解析
- 年产30万吨木薯燃料乙醇项目一期工程(年产15万吨)可行性研究报告
- 2024版全新劳动仲裁证据目录范本
- 2024年部编新改版语文小学三年级上册第六单元测试题附答案
评论
0/150
提交评论