基于安卓技术的点餐系统的设计与实现 下载本文

实现的核心代码如下:

loginActivity 的 doInBackground 的方法发起url请求,发送用户名,密码 protected String doInBackground(String... params) {

String urlString = AppConstant.getUrl(getApplicationContext()) + \

urlString += \etPassword.getText();

String json = httpHelper.HttpRequest(urlString); return json; }

loginActivity 的 onPostExecute 的方法 获取服务器返回json,验证密码是否正确

loginActivity 的 dealLogin 是当密码验证成功后 跳转到DishesListActivity

OnLineUser model = new OnLineUser(); //设置登陆成功的用户属性

model.setId(jsonObject.getInt(\

model.setLoginid(etLoginID.getText().toString()); model.setName(jsonObject.getString(\ application.setLoginUser(model);

//弹出提示框

toastUtil.show(model.getName() + \登录成功\

//跳转到登陆成功页面

intent = new Intent(LoginActivity.this, DishesListActivity.class); startActivity(intent);

5.2菜谱模块的实现

用户成功登陆进入系统之后可以查看到当前系统所有菜谱信息,包括菜谱的图片、名称、单价和详细介绍信息,系统用了一个ListView组件来显示系统的菜谱信息,同时用户也可以通过界面左上角的搜索按钮来搜索菜谱信息,用户点击一条信息之后可以查看一个菜谱的详细介绍。

菜谱模块作用流程图详见图10,展示了订餐模块的用户操作过程和系统处理过程。

第 13 页 共 35 页

图10 菜谱功能流程图

具体的实现效果如图11和12所示:

图11 菜谱大全界面

第 14 页 共 35 页

图12 菜谱分类界面

实现的核心代码如下: //请求获取列表数据的代码 @Override

protected String doInBackground(String... params) { String json = null;

serverUrl = AppConstant.getUrl(getApplicationContext()) + \ + shopid;

BaseUtil.LogII(serverUrl);

json = httpHelper.HttpRequest(serverUrl); return json; }

//解析列表数据,并设置适配器的代码 list = new ArrayList();

if (!TextUtils.isEmpty(result.trim())) {

list = gson.fromJson(result, new TypeToken>() {}.getType()); } else {

toastUtil.show(\没有数据\

第 15 页 共 35 页

}

adapter = new DishesAdapter(DishesListActivity.this, list); listview1.setAdapter(adapter);

点击listview中的一项,会跳转到详情页面,这其中会根据id去调用webservice查询数据库获取到详情数据

//界面点击跳转的代码

listview1.setOnItemClickListener(new OnItemClickListener() { @Override

public void onItemClick(AdapterView parent, View view, int position, long id) { intent = new Intent(DishesListActivity.this, GoodDetailActivity.class);

intent.putExtra(\ startActivity(intent); } });

menu的实现,设置menu按键的弹出事件

public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); menu.add(0, 99, 0, \人工服务\ menu.add(0, 100, 0, \注销登录\ menu.add(0, 101, 0, \个人信息\ menu.add(0, 106, 0, \我的订单\ menu.add(0, 102, 0, \退出\ return true; }

menu选中触发的事件参考onOptionsItemSelected 方法 选中 人工服务 按钮后,会执行humanServices方法 private void humanServices() {

final String[] arg = new String[6]; for (int i = 0; i < arg.length; i++) { arg[i] = (i + 1) + \号桌\ }

new AlertDialog.Builder(this).setTitle(\选择服务桌号\

第 16 页 共 35 页