首页 > 代码库 > 查看拍卖物品
查看拍卖物品
查看拍卖物品程序界面:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:gravity="center" android:layout_width="match_parent" android:layout_height="match_parent"><LinearLayout android:orientation="horizontal" android:gravity="center" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="@dimen/sub_title_margin"> <TextView android:id="@+id/view_titile" android:text="@string/view_succ" android:textSize="@dimen/label_font_size" android:layout_width="wrap_content" android:layout_height="wrap_content"/><!-- 定义返回按钮 --><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 --><ListView android:id="@+id/succList" android:layout_width="match_parent" android:layout_height="match_parent"/></LinearLayout>
查看流拍物品的Fragment代码:
public class ViewItemFragment extends Fragment{ Button bnHome; ListView succList; TextView viewTitle; @Override public View onCreateView(LayoutInflater inflater , ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.view_item , container , false); // 获取界面上的返回按钮 bnHome = (Button) rootView.findViewById(R.id.bn_home); succList = (ListView) rootView.findViewById(R.id.succList); viewTitle = (TextView) rootView.findViewById(R.id.view_titile); // 为返回按钮的单击事件绑定事件监听器 bnHome.setOnClickListener(new HomeListener(getActivity())); String action = getArguments().getString("action"); // 定义发送请求的URL String url = HttpUtil.BASE_URL + action; // 如果是查看流拍物品,修改标题 if (action.equals("viewFail.jsp")) { viewTitle.setText(R.string.view_fail); } try { // 向指定URL发送请求,并把服务器响应转换成JSONArray对象 JSONArray jsonArray = new JSONArray(HttpUtil .getRequest(url)); //① // 将JSONArray包装成Adapter JSONArrayAdapter adapter = new JSONArrayAdapter(getActivity() , jsonArray, "name", true); //② succList.setAdapter(adapter); } catch (Exception e) { DialogUtil.showDialog(getActivity(), "服务器响应异常,请稍后再试!", false); e.printStackTrace(); } succList.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // 查看指定物品的详细情况。 viewItemDetail(position); //③ } }); return rootView; } private void viewItemDetail(int position) { // 加载detail.xml界面布局代表的视图 View detailView = getActivity().getLayoutInflater() .inflate(R.layout.detail, null); // 获取detail.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 itemRemark = (TextView) detailView .findViewById(R.id.itemRemark); // 获取被单击的列表项 JSONObject jsonObj = (JSONObject) succList.getAdapter().getItem( position); try { // 通过文本框显示物品详情 itemName.setText(jsonObj.getString("name")); itemKind.setText(jsonObj.getString("kind")); maxPrice.setText(jsonObj.getString("maxPrice")); itemRemark.setText(jsonObj.getString("desc")); } catch (JSONException e) { e.printStackTrace(); } DialogUtil.showDialog(getActivity(), detailView); }}
上面代码通过HttpUtil.getRequest(url)与服务器进行交互,并将返回结果封装成JSONArray对象(本质是一个数组),方法有:
length();
optJSONArray();
optJSONObject();
optXXX();
本程序提供了一个JSONArrayAdapter类,本质是一个Adapter,用于将JSONArray数组进行包装,并作为ListView的Adapter。
public class JSONArrayAdapter extends BaseAdapter{ private Context ctx; // 定义需要包装的JSONArray对象 private JSONArray jsonArray; // 定义列表项显示JSONObject对象的哪个属性 private String property; private boolean hasIcon; public JSONArrayAdapter(Context ctx , JSONArray jsonArray, String property , boolean hasIcon) { this.ctx = ctx; this.jsonArray = jsonArray; this.property = property; this.hasIcon = hasIcon; } @Override public int getCount() { return jsonArray.length(); } @Override public Object getItem(int position) { return jsonArray.optJSONObject(position); } @Override public long getItemId(int position) { try { // 返回物品的ID return ((JSONObject)getItem(position)).getInt("id"); } catch (JSONException e) { e.printStackTrace(); } return 0; } @Override public View getView(int position, View convertView, ViewGroup parent) { // 定义一个线性布局管理器 LinearLayout linear = new LinearLayout(ctx); // 设置为水平的线性布局管理器 linear.setOrientation(0); // 创建一个ImageView ImageView iv = new ImageView(ctx); iv.setPadding(10, 0, 20, 0); iv.setImageResource(R.drawable.item); // 将图片添加到LinearLayout中 linear.addView(iv); // 创建一个TextView TextView tv = new TextView(ctx); try { // 获取JSONArray数组元素的property属性 String itemName = ((JSONObject)getItem(position)) .getString(property); // 设置TextView所显示的内容 tv.setText(itemName); } catch (JSONException e) { e.printStackTrace(); } tv.setTextSize(20); if (hasIcon) { // 将TextView添加到LinearLayout中 linear.addView(tv); return linear; } else { return tv; } }}
效果图:
查看拍卖物品
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。