博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
指尖上的Android之实战篇(八)
阅读量:4212 次
发布时间:2019-05-26

本文共 8052 字,大约阅读时间需要 26 分钟。

   正式写之前,先发点感慨,在这里mark下:毕业到现在正好一年整,来杭州正好一年,在公司自己学到了很多东西,虽然有时我们有点有组织,无纪律。但是每人都有颗上进的心,有收获,有伤感(不细说,你懂得)。谨以此篇作为在杭州写的最后一篇Blong,留作纪念,下个星期正式进驻魔都,等着我的会是什么那,祝福自己在魔都各方面都好的发展。加油。。。微笑

    这个小项目的就写到这里,就整体功能来说,还有一小部分,感兴趣的童鞋可以参照李刚老师的Android讲义将剩下的补充完整。因为这是个人的练手的项目,必然有很多不足,如果有什么问题,欢迎童鞋一起交流。

管理物品模块:

1. 管理拍卖物品:

其对应的Servlet: ViewOwnerItemServlet:
返回的JSON对象类似为:
[{"id":2,"endtime":"2012-04-02","initPrice":210,"addtime":"2012-03-21","itemName":"display card","bids":[],"maxPrice":210,"itemRemark":"Old video card","itemDesc":"Old video card, still can use","kind":"computer hardware"},{"id":3,"endtime":"2012-03-28","initPrice":21000,"addtime":"2012-03-21","itemName":"The old house","bids":[],"maxPrice":25000,"itemRemark":"Old house","itemDesc":"40 years old house","kind":"house property"}]

2.查看自己的拍卖物品对应的布局文件:manage_item.xml

3.管理物品对应的Activity为:MangerItem.java

package com.infy.auction.client; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import com.infy.auction.client.util.DialogUtil; import com.infy.auction.client.util.HttpUtil; import com.infy.auction.client.util.JSONArrayAdapter; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.AdapterView; import android.widget.Button; import android.widget.EditText; import android.widget.ListView; import android.widget.AdapterView.OnItemClickListener; public class ManageItem extends Activity{ Button bnHome; Button bnAdd; ListView itemList; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.manage_item); //获取界面上的组件 bnHome = (Button)findViewById(R.id.bn_home); bnAdd = (Button)findViewById(R.id.bnAdd); itemList = (ListView)findViewById(R.id.itemList); //添加按钮事件监听器 bnHome.setOnClickListener(new FinishListener(this)); bnAdd.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub //增加拍卖的物品 Intent intent = new Intent(ManageItem.this, AddItem.class); startActivity(intent); } }); //定义发送的URL String url = HttpUtil.BASE_URL +"ViewOwnerItemServlet"; try{ //向指定的URL发送请求 JSONArray jsonArray = new JSONArray(HttpUtil.getRequest(url)); //将服务器响应包装成Adapter JSONArrayAdapter adapter = new JSONArrayAdapter(ManageItem.this, jsonArray, "itemName", true); itemList.setAdapter(adapter); }catch(Exception e){ DialogUtil.showDialog(this, "服务器响应异常,请稍后再试!", false); e.printStackTrace(); } itemList.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView
parent, View view, int postion, long id) { // TODO Auto-generated method stub //加载详细的清单Item viewItemInBid(postion); } }); } private void viewItemInBid(int position){ //加载detail_in_bid.xml布局 View detailView = getLayoutInflater().inflate(R.layout.detail_in_bid, null); //获取detail_in_bid界面中的文本框 EditText itemName =(EditText)detailView.findViewById(R.id.itemName); EditText itemKind = (EditText)detailView.findViewById(R.id.itemKind); EditText maxPrice = (EditText)detailView.findViewById(R.id.maxPrice); EditText initPrice = (EditText)detailView.findViewById(R.id.initPrice); EditText endTime = (EditText)detailView.findViewById(R.id.endTime); EditText itemRemark = (EditText)detailView.findViewById(R.id.itemRemark); //获取被单击列表项的所包装的JSONObject JSONObject jsonObject = (JSONObject)itemList.getAdapter().getItem(position); try{ //通过文本框显示物品详情 itemName.setText(jsonObject.getString("itemName")); itemKind.setText(jsonObject.getString("kind")); maxPrice.setText(jsonObject.getString("maxPrice")); itemRemark.setText(jsonObject.getString("itemDesc")); initPrice.setText(jsonObject.getString("initPrice")); endTime.setText(jsonObject.getString("endtime")); }catch(JSONException e){ e.printStackTrace(); } DialogUtil.showDialog(ManageItem.this, detailView); } }

4.添加拍卖物品的Servlet:对应的服务器端的Servlet;AddItemServlet.java
5.添加拍卖物品:add_item.xml

6.添加物品的Activity:AddItem.java

package com.infy.auction.client; import java.util.HashMap; import java.util.Map; import org.json.JSONArray; import org.json.JSONObject; import com.infy.auction.client.util.DialogUtil; import com.infy.auction.client.util.HttpUtil; import com.infy.auction.client.util.JSONArrayAdapter; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.Spinner; public class AddItem extends Activity { private static final String TAG = "AddItem"; EditText itemNmae, itemDesc, itemRemark, initPrice; Spinner itemKind, avaiTime; Button bnAdd, bnCancel; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.add_item); // 获取界面的组件 itemNmae = (EditText) findViewById(R.id.itemName); itemDesc = (EditText) findViewById(R.id.itemDesc); itemRemark = (EditText) findViewById(R.id.itemRemark); initPrice = (EditText) findViewById(R.id.initPrice); itemKind = (Spinner) findViewById(R.id.itemKind); avaiTime = (Spinner) findViewById(R.id.availTime); // 定义发送请求的地址,获得物品种类的数量 String url = HttpUtil.BASE_URL + "ViewKindServlet"; JSONArray jsonArray = null; try { jsonArray = new JSONArray(HttpUtil.getRequest(url)); Log.i(TAG, "jsonArray-->" + jsonArray.toString()); } catch (Exception e1) { e1.printStackTrace(); } // 将JSonArray包装成Adapter JSONArrayAdapter adapter = new JSONArrayAdapter(AddItem.this, jsonArray, "kindName", false); // 显示品种物类的列表 itemKind.setAdapter(adapter); // 获得界面中的两个按钮 bnAdd = (Button) findViewById(R.id.bnAdd); bnCancel = (Button) findViewById(R.id.bnCancel); // 添加按钮的监听器事件 bnCancel.setOnClickListener(new FinishListener(this)); bnAdd.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub // 进行输入的校验 if (validate()) { // 获取用户输入的物品名和物品的描述信息等 String name = itemNmae.getText().toString().trim(); String desc = itemDesc.getText().toString().trim(); String remark = itemRemark.getText().toString().trim(); String price = initPrice.getText().toString().trim(); JSONObject kind = (JSONObject) itemKind.getSelectedItem(); int avail = avaiTime.getSelectedItemPosition(); // 根据用户选择有效时间选项,指定实际的 有效时间 switch (avail) { case 5: avail = 7; break; case 6: avail = 30; break; default: avail += 1; break; } try { // 添加物品 String result = addItem(name, desc, remark, price, kind .getInt("id"), avail); // 显示对话框 DialogUtil.showDialog(AddItem.this, result, true); } catch (Exception e) { DialogUtil.showDialog(AddItem.this, "服务器异常,请稍后再试!", false); e.printStackTrace(); } } } }); } // 对输入的物品名和起拍价格进行检验 private boolean validate() { String name = itemNmae.getText().toString().trim(); if (name.equals("")) { DialogUtil.showDialog(this, "物品名称是必须要填的!", false); return false; } String price = initPrice.getText().toString().trim(); if (price.equals("")) { DialogUtil.showDialog(this, "起拍价格是必须要填的!", false); return false; } try { // 尝试把起拍价格转化为浮点数 Double.parseDouble(price); } catch (NumberFormatException e) { DialogUtil.showDialog(this, "起拍价格必须是数值!", false); return false; } return true; } private String addItem(String name, String desc, String remark, String initPrice, int kindId, int availTime) throws Exception { // 使用Map封装请求参数 Map
map = new HashMap
(); map.put("itemName", name); map.put("itemDesc", desc); map.put("itemRemark", remark); map.put("initPrice", initPrice); map.put("kindId", kindId + ""); map.put("availTime", availTime + ""); // 发送请求的URL String url = HttpUtil.BASE_URL + "AddItemServlet"; return HttpUtil.postRequest(url, map); } }

7.效果图:

你可能感兴趣的文章
60款顶级大数据开源工具
查看>>
eclipse 配置scala问题-More than one scala library found in the build path
查看>>
IIS 承载的服务失败
查看>>
写连接代码时需要注意2000和2005的不同:
查看>>
五种开源协议的比较(BSD,Apache,GPL,LGPL,MIT) – 整理
查看>>
程序员公司任职软件开发著作权该归谁呢
查看>>
OLTP报表和OLAP报表
查看>>
Hbase案例:浏览器用户行为分析
查看>>
SQL Server 2008 Reporting Services报表中文乱码问题
查看>>
report builder 报表表头固定
查看>>
DNS中的正向解析与反向解析
查看>>
忘记oracle的sys用户密码怎么修改
查看>>
科德十二定律(Codd's 12 rules)
查看>>
VBS ConvertToXlsx
查看>>
Java位运算总结:位运算用途广泛
查看>>
(Kettle)合并记录步骤
查看>>
XML5个转义符
查看>>
js获取json对象键名及值
查看>>
有向无环图
查看>>
word 2007 中插入图片无法显示,只能显示底部一部分
查看>>