}
// 查询放回游标
Cursor c = managedQuery(uri, projection, null, null, null); // 实例化桌号下拉列表Spinner的Adapter
SimpleCursorAdapter adapter2 = new SimpleCursorAdapter(this, android.R.layout.simple_spinner_item, c, new String[] { \// 为桌号Spinner绑定数据
tableNoSpinner.setAdapter(adapter2);
// 开桌监听器 private OnClickListener startListener = new OnClickListener() { @Override public void onClick(View v) { Date date = new Date(); SimpleDateFormat sdf = new SimpleDateFormat(\ // 开桌时间 String orderTime = sdf.format(date);
// 开桌用户,从登陆配置文件中获得
SharedPreferences pres = getSharedPreferences(\ MODE_WORLD_READABLE); String userId = pres.getString(\// 桌号
TextView tv = (TextView) tableNoSpinner.getSelectedView(); String tableId = tv.getText().toString();
// 人数
String personNum = personNumEt.getText().toString(); // 请求参数列表
List
params.add(new BasicNameValuePair(\params.add(new BasicNameValuePair(\params.add(new BasicNameValuePair(\
params.add(new BasicNameValuePair(\UrlEncodedFormEntity entity1=null; try { entity1 = new UrlEncodedFormEntity(params,HTTP.UTF_8); } catch (UnsupportedEncodingException e) { e.printStackTrace(); }
// 请求服务器url
String url = HttpUtil.BASE_URL+\// 获得请求对象HttpPost
HttpPost request = HttpUtil.getHttpPost(url); // 设置查询参数
34
request.setEntity(entity1);
// 获得响应结果 String result= HttpUtil.queryStringForPost(request); // 将开桌生成的订单Id,赋值给全局orderId orderId = result; Toast. makeText(OrderActivity.this, \您的订单号是:\Toast.LENGTH_LONG).show(); } };
4) 实现点餐功能。单击点菜按钮,弹出点菜对话框,要求操作员输入点菜信息。这里需要自定义一个View视图,添加到对话框,并且自定义视图中有一个Spinner引用菜单列表数据。
5) 下单,下单的过程是将顾客的点餐信息类表保存到后台数据库中,实现代码如下所示。
// 为点菜列表ListView绑定数据 private void setMenusAdapter(){ // 显示点菜项的TextView引用 to[0] = R.id.id_ListView; to[1] = R.id.name_ListView; to[2] = R.id.num_ListView; to[3] = R.id.price_ListView; to[4] = R.id.remark_ListView;
// 实例化点菜列表ListView Adapter
sa = new SimpleAdapter(this, data, R.layout.listview, from, to); // 为ListView绑定数据
lv.setAdapter(sa);
// 添菜监听器
private OnClickListener addListener = new OnClickListener() { @Override public void onClick(View v) { // 调用点菜方法 addMeal(); } };
35
// 下单监听器
private OnClickListener orderListener = new OnClickListener() { @Override public void onClick(View v) {
// 遍历点菜列表
for (int i = 0; i < data.size(); i++) { // 获得其中点菜map Map map = (Map)data.get(i);
// 获得点菜项
String menuId = (String) map.get(\String num = (String)map.get(\
String remark = (String)map.get(\String myOrderId = orderId;
// 封装到请求参数中
List
params.add(new BasicNameValuePair(\params.add(new BasicNameValuePair(\params.add(new BasicNameValuePair(\
params.add(new BasicNameValuePair(\UrlEncodedFormEntity entity1=null; try { entity1 = new UrlEncodedFormEntity(params,HTTP.UTF_8); } catch (UnsupportedEncodingException e) { e.printStackTrace(); }
// 请求服务器Servlet的url
String url = HttpUtil.BASE_URL+\// 获得HttpPost对象
HttpPost request = HttpUtil.getHttpPost(url);
// 为请求设置参数 request.setEntity(entity1); // 获得返回结果 String result= HttpUtil.queryStringForPost(request); Toast. makeText(OrderActivity.this, \顾客的评价是:\Toast.LENGTH_LONG).show(); finish(); } }
36
}; }
//添菜方法
private void addMeal() { // 获得LayoutInflater实例
LayoutInflater inflater = LayoutInflater.from(this); // 实例化在弹出对话框中添加的视图
final View v = inflater.inflate(R.layout.order_detail, null);
// 获得视图中的Spinner对象,菜单下拉列表
final Spinner menuSpinner = (Spinner) v.findViewById(R.id.menuSpinner); // 获得视图中的EditText对象,数量
EditText numEt = (EditText) v.findViewById(R.id.numEditText);
// 获得视图中的EditText实例,备注
EditText remarkEt = (EditText) v.findViewById(R.id.add_remarkEditText); // 访问本地SQLite数据库中MenuTbl表的Uri
Uri uri = Uri.parse(\ // 查询列
String[] projection = { \ // 获得ContentResolver实例
ContentResolver cr = getContentResolver(); // 查询放回游标
Cursor c = cr.query(uri, projection, null, null, null);
// 实例化SimpleCursorAdapter
SimpleCursorAdapter adapter2 = new SimpleCursorAdapter(this, R.layout.spinner_lo, c, new String[] { \ R.id.id_TextView01, R.id.price_TextView02, R.id.name_TextView03, }); // 为点菜下拉列表Spinner绑定数据 menuSpinner.setAdapter(adapter2);
// 获得AlertDialog.Builder实例
AlertDialog.Builder builder = new AlertDialog.Builder(this); builder
// 设置标题
.setMessage(\请点菜:\ // 设置自定义视图 .setView(v)
// 设置确定按钮
.setPositiveButton(\确定\ // 确定按钮事件 public void onClick(DialogInterface dialog, int id) { // 获得ListView中的自定义视图LinearLayout
LinearLayout v1 = (LinearLayout) menuSpinner
37
.getSelectedView();
// 获得TextView,菜编号 TextView id_tv = (TextView) v1 .findViewById(R.id.id_TextView01); // 获得TextView,菜价格
TextView price_tv = (TextView) v1 .findViewById(R.id.price_TextView02); // 获得TextView,菜名称
TextView name_tv = (TextView) v1 .findViewById(R.id.name_TextView03); // 获得EditText,菜数量 EditText num_et = (EditText) v .findViewById(R.id.numEditText); // 获得EditText,菜备注
EditText remark_et = (EditText) v .findViewById(R.id.add_remarkEditText); // 菜编号值
String idStr = id_tv.getText().toString(); // 菜价格值
String priceStr = price_tv.getText().toString()+\元\// 菜名称值
String nameStr = name_tv.getText().toString(); // 菜数量值
String numStr = num_et.getText().toString(); // 菜备注值
String remarkStr = remark_et.getText().toString(); // 封装到Map中 map = new HashMap() map.put(\
map.put(\map.put(\map.put(\map.put(\// 添加到ListView data.add(map)
// 关联的TextView to[0] = R.id.id_ListView; to[1] = R.id.name_ListView; to[2] = R.id.num_ListView; to[3] = R.id.price_ListView; to[4] = R.id.remark_ListView;
// 实例化SimpleAdapter
38