五、管理拍卖物品

ManageItem.java

package com.lq.auction;import android.app.Fragment;import android.content.Intent;import android.os.Bundle;public class ManageItem extends FragmentActivity implements Callbacks{    @Override    public Fragment getFragment() {        return new ManageItemFragment();    }    @Override    public void onItemSelected(Integer id, Bundle bundle) {        //当用户单击“添加”按钮时,将会启动AddItem Activity        Intent i = new Intent(this,AddItem.class);        startActivity(i);    }}

manage_item.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"    android:gravity="center" >    <LinearLayout         android:orientation="horizontal"        android:gravity="center"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_margin="@dimen/sub_title_margin">        <LinearLayout             android:orientation="vertical"            android:layout_gravity="center"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:paddingLeft="12dp">            <TextView                 android:text="@string/manage_item"                android:textSize="@dimen/label_font_size"                android:layout_width="wrap_content"                android:layout_height="wrap_content"/>                        <Button                 android:id="@+id/bnAdd"                android:layout_width="85dp"                android:layout_height="30dp"                android:background="@drawable/add_item"/>        LinearLayout>        <Button             android:id="@+id/bn_home"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_marginLeft="@dimen/label_font_size"            android:background="@drawable/home"/>    LinearLayout>    <ListView         android:id="@+id/itemList"        android:layout_width="match_parent"        android:layout_height="match_parent">    ListView>LinearLayout>

ManageItemFragment.java

package com.lq.auction;public class ManageItemFragment extends Fragment {    public static final int ADD_ITEM = 0x1006;    Button bnHome, bnAdd;    ListView itemList;    Callbacks mCallbacks;    @Override    public View onCreateView(LayoutInflater inflater, ViewGroup container,            Bundle savedInstanceState) {        View rootView = inflater.inflate(R.layout.manage_item, container, false);        //获取界面上的“返回”按钮        bnHome = (Button) rootView.findViewById(R.id.bn_home);        bnAdd= (Button) rootView.findViewById(R.id.bnAdd);        itemList = (ListView) rootView.findViewById(R.id.itemList);        //为“返回”按钮的单击事件绑定事件监听器        bnHome.setOnClickListener(new HomeListener(getActivity()));        bnAdd.setOnClickListener(new OnClickListener() {            @Override            public void onClick(View v) {                mCallbacks.onItemSelected(ADD_ITEM, null);            }        });        //定义发送请求的URL        String url = HttpUtil.BASE_URL + "viewOwnerItem.jsp";  //getArguments()?        try {            //向指定的URL发送请求,并把服务器响应转换成JSONArray对象            JSONArray jsonArray = new JSONArray(HttpUtil.getRequest(url));            //将JSONArray包装成Adapter            JSONArrayAdapter adapter = new JSONArrayAdapter(getActivity()                    , jsonArray, "name", true);            itemList.setAdapter(adapter);                   } catch (Exception e) {            DialogUtil.showDialog(getActivity(), "服务器异常,请稍后再试", false);            e.printStackTrace();        }        itemList.setOnItemClickListener(new OnItemClickListener(){            @Override            public void onItemClick(AdapterView<?> parent, View view, int position,                    long id) {                //查看指定物品的详细情况                viewItemBid(position);                          }                   });                 return rootView;    }    //当该Fragment被添加、显示到Activity时,回调该方法    @Override    public void onAttach(Activity activity) {        super.onAttach(activity);        if(!(activity instanceof Callbacks)){            //如果Activity没有实现Callbacks接口,抛出异常            throw new IllegalStateException(                    "ManageitemFragment所在的Activity必须实现Callbacks接口");        }        //把该Activity当成Callbacks对象         mCallbacks = (Callbacks) activity;    }    @Override    public void onDetach() {        super.onDetach();        //将mCallbacks赋为null        mCallbacks = null;    }    private void viewItemBid(int position) {        //加载detail_in_bid.xml界面布局代表的视图        View detailView = getActivity().getLayoutInflater()                .inflate(R.layout.detail_in_bid, null);        //获取detail_in_bid.xml界面布局中的文本框        TextView itemName = (TextView) detailView.findViewById(R.id.itemName);        TextView itemKind = (TextView) detailView.findViewById(R.id.itemKind);        TextView maxPrice = (TextView) detailView.findViewById(R.id.maxPrice);        TextView initPrice = (TextView) detailView.findViewById(R.id.initPrice);        TextView endTime = (TextView) detailView.findViewById(R.id.endTime);        TextView itemRemark = (TextView) detailView.findViewById(R.id.itemRemark);        //获取被单击的列表项        JSONObject jsonObj = (JSONObject) itemList.getAdapter().getItem(position);        try {            //通过文本框显示物品详情            itemName.setText(jsonObj.getString("name"));            itemKind.setText(jsonObj.getString("kind"));            initPrice.setText(jsonObj.getString("initPrice"));            endTime.setText(jsonObj.getString("endTime"));            maxPrice.setText(jsonObj.getString("maxPrice"));            itemRemark.setText(jsonObj.getString("desc"));        } catch (JSONException e) {            e.printStackTrace();        }        DialogUtil.showDialog(getActivity(), detailView);       }}

detail_in_bid.xml

<?xml version="1.0" encoding="utf-8"?><TableLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:stretchColumns="1">    <TableRow>        <TextView             android:text="@string/item_name"            android:textSize="@dimen/label_font_size"            android:layout_width="wrap_content"            android:layout_height="wrap_content"/>        <TextView             android:id="@+id/itemName"            android:layout_width="match_parent"            android:layout_height="wrap_content"            style="@style/tv_show"/>    TableRow>    <TableRow>        <TextView             android:text="@string/item_kind"            android:textSize="@dimen/label_font_size"            android:layout_width="wrap_content"            android:layout_height="wrap_content"/>        <TextView             android:id="@+id/itemKind"            android:layout_width="match_parent"            android:layout_height="wrap_content"            style="@style/tv_show"/>          TableRow>    <TableRow>        <TextView             android:text="@string/win_price"            android:textSize="@dimen/label_font_size"            android:layout_width="wrap_content"            android:layout_height="wrap_content"/>        <TextView             android:id="@+id/maxPrice"            android:layout_width="match_parent"            android:layout_height="wrap_content"            style="@style/tv_show"/>          TableRow>    <TableRow>        <TextView             android:text="@string/init_price"            android:textSize="@dimen/label_font_size"            android:layout_width="wrap_content"            android:layout_height="wrap_content"/>        <TextView             android:id="@+id/initPrice"            android:layout_width="match_parent"            android:layout_height="wrap_content"            style="@style/tv_show"/>          TableRow>    <TableRow>        <TextView             android:text="@string/end_time"            android:textSize="@dimen/label_font_size"            android:layout_width="wrap_content"            android:layout_height="wrap_content"/>        <TextView             android:id="@+id/endTime"            android:layout_width="match_parent"            android:layout_height="wrap_content"            style="@style/tv_show"/>          TableRow>            <TableRow>        <TextView             android:text="@string/remark"            android:textSize="@dimen/label_font_size"            android:layout_width="wrap_content"            android:layout_height="wrap_content"/>        <TextView             android:id="@+id/itemRemark"            android:layout_width="match_parent"            android:layout_height="wrap_content"            style="@style/tv_show"/>           TableRow>TableLayout>

AddItem.java

package com.lq.auction;import android.app.Fragment;public class AddItem extends FragmentActivity{    @Override    public Fragment getFragment() {        return new AddItemFragment();    }}

add_item.xml

<?xml version="1.0" encoding="utf-8"?><TableLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:stretchColumns="1">    <TextView             android:text="@string/add_item_title"            android:gravity="center"            android:textSize="@dimen/label_font_size"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:padding="@dimen/title_padding"/>            <TableRow>        <TextView             android:text="@string/item_name"            android:textSize="@dimen/label_font_size"            android:layout_width="wrap_content"            android:layout_height="wrap_content"/>        <EditText             android:id="@+id/itemName"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:inputType="text"/>    TableRow>        <TableRow>        <TextView             android:text="@string/item_desc"            android:textSize="@dimen/label_font_size"            android:layout_width="wrap_content"            android:layout_height="wrap_content"/>        <EditText             android:id="@+id/itemDesc"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:inputType="text"/>           TableRow>        <TableRow>        <TextView             android:text="@string/remark"            android:textSize="@dimen/label_font_size"            android:layout_width="wrap_content"            android:layout_height="wrap_content"/>        <EditText             android:id="@+id/itemRemark"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:inputType="text"/>           TableRow>        <TableRow>        <TextView             android:text="@string/init_price"            android:textSize="@dimen/label_font_size"            android:layout_width="wrap_content"            android:layout_height="wrap_content"/>        <EditText             android:id="@+id/initPrice"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:inputType="numberDecimal"/>        TableRow>        <TableRow>        <TextView             android:text="@string/avail_time"            android:textSize="@dimen/label_font_size"            android:layout_width="wrap_content"            android:layout_height="wrap_content"/>        <Spinner             android:id="@+id/availTime"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:entries="@array/availTime"/>         TableRow>        <TableRow>        <TextView             android:text="@string/item_kind"            android:textSize="@dimen/label_font_size"            android:layout_width="wrap_content"            android:layout_height="wrap_content"/>        <Spinner             android:id="@+id/itemKind"            android:layout_width="match_parent"            android:layout_height="wrap_content"/>          TableRow>        <LinearLayout         android:layout_width="match_parent"        android:layout_height="wrap_content"        android:gravity="center">        <Button             android:id="@+id/bnAdd"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="@string/add"/>        <Button             android:id="@+id/bnCancel"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="@string/cancel"/>    LinearLayout>TableLayout>

AddItemFragment.java

package com.lq.auction;public class cextends Fragment {    // 定义界面中文本框    EditText itemName, itemDesc, itemRemark, initPrice;    Spinner itemKind, availTime;    // 定义界面中两个按钮    Button bnAdd, bnCancel;    @Override    public View onCreateView(LayoutInflater inflater, ViewGroup container,            Bundle savedInstanceState) {        View rootView = inflater.inflate(R.layout.add_item, container, false);        // 获取界面中的编辑框        itemName = (EditText) rootView.findViewById(R.id.itemName);        itemDesc = (EditText) rootView.findViewById(R.id.itemDesc);        itemRemark = (EditText) rootView.findViewById(R.id.itemRemark);        initPrice = (EditText) rootView.findViewById(R.id.initPrice);        itemKind = (Spinner) rootView.findViewById(R.id.itemKind);        availTime = (Spinner) rootView.findViewById(R.id.availTime);        //定义发送请求的URL        String url = HttpUtil.BASE_URL + "viewKind.jsp";         JSONArray jsonArray = null;        try {            //获取系统中所有的物品种类            //向指定的URL发送请求,并把服务器响应转换成JSONArray对象            jsonArray = new JSONArray(HttpUtil.getRequest(url));                    } catch (Exception e1) {            e1.printStackTrace();        }        JSONArrayAdapter adapter = new JSONArrayAdapter(getActivity()                , jsonArray, "kindName", false);  //注意大小写,之前把"kindName"写成了"kindname",导致物品种类显示不出来        itemKind.setAdapter(adapter);        // 获取界面中的两个按钮        bnAdd = (Button) rootView.findViewById(R.id.bnAdd);        bnCancel = (Button) rootView.findViewById(R.id.bnCancel);        // 为取消按钮的单击事件绑定事件监听器        bnCancel.setOnClickListener(new HomeListener(getActivity()));        bnAdd.setOnClickListener(new OnClickListener() {            @Override            public void onClick(View v) {                if(validate()){                    // 输入校验                    String name = itemName.getText().toString();                    String desc = itemDesc.getText().toString();                    String remark = itemRemark.getText().toString();                    String price = initPrice.getText().toString();                    JSONObject kind = (JSONObject) itemKind.getSelectedItem();                    int avail = availTime.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(getActivity(), result, true);                    } catch (Exception e) {                        DialogUtil.showDialog(getActivity()                                , "服务器响应异常,请稍后再试", false);                        e.printStackTrace();                    }                }            }        });        return rootView;    }    // 对用户输入的种类名称进行校验    private boolean validate() {        String name = itemName.getText().toString().trim();        if(name.equals("")){            DialogUtil.showDialog(getActivity(), "物品名称是必填项", false);            return false;        }        String price = initPrice.getText().toString().trim();        if (price.equals("")) {            DialogUtil.showDialog(getActivity(), "起拍价格是必填项", false);            return false;               }        try {            //尝试把起拍价格转换为浮点数            Double.parseDouble(price);        } catch (NumberFormatException e) {            DialogUtil.showDialog(getActivity(), "起拍价格是必填是数值", 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 + "addItem.jsp";        // 发送请求        return HttpUtil.postReuest(url, map);    }}

运行效果图:

更多相关文章

  1. android中数据存储的contentprovider的使用方法
  2. Android(安卓)向菜单按钮说再见
  3. Android简易计算器——LinearLayout布局
  4. android通知栏响应事件
  5. 记一次BottomNavigationView使用踩坑
  6. Android(安卓)ImageSwithcher的使用
  7. android 按钮按下时改变字体颜色
  8. android 返回键退出程序
  9. Android,HTTP请求中文乱码

随机推荐

  1. 监听android home键的实现方式
  2. 2011.10.19(2)——— android 圆角与倒影
  3. android中判断网络是否连接
  4. Android(安卓)文件操作大全
  5. 2013.04.10——— android BitmapFactory
  6. Android操作数据的动态更新ListView
  7. Android中检测网络连接状况的方法
  8. android run/debug configurations时报错
  9. 2011.08.26——— android ListView之多
  10. Android中话bitmap的简单示例