Android实训-江延妞—07(8)

2019-03-09 22:14

}

// 查询放回游标

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 = new ArrayList(); // 添加请求参数

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 = new ArrayList(); // 添加到请求参数中

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


Android实训-江延妞—07(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:某煤矿瓦斯抽放设计说明书

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

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