/** * 会员未支付订单 2014-8-14下午2:49:19 * * @author wangmingyu */ @InjectHttpOk({10, 11, 27}) public void resultOk(ResponseEntity r) { dismissDialog(); if (ResultParse.isResultOK(r, activity)) { switch (r.getKey()) { case 10: List<OrdrDetail> list = new ArrayList<OrdrDetail>(); list = Handler_Json.jsonToBean(OrdrDetail.class, "list", r.getContentAsString()); installData(list); break; case 11: // 查询订单组列表 positionJson = r.getContentAsString(); child = Handler_Json.jsonToBean(OrderDetailEntity.class, "list", r.getContentAsString()); if (child != null) { order_center_list.expandGroup(groupPosition); if (Handler_String.isBlank(((OrderDetailEntity) oca.getChild(0, 0)).getCardNo())) { footerView.findViewById(R.id.rl_type_card).setVisibility(View.GONE); footerView.findViewById(R.id.rl_type_money).setVisibility(View.VISIBLE); } else { footerView.findViewById(R.id.rl_type_card).setVisibility(View.VISIBLE); footerView.findViewById(R.id.rl_type_money).setVisibility(View.GONE); TextView cardNo = (TextView) footerView.findViewById(R.id.tv_card_No); TextView cardPoint = (TextView) footerView.findViewById(R.id.tv_card_point); Selector selector = Selector.from(ReservationDto.class); selector.select(" * "); selector.where("cardNo", "=", ((OrderDetailEntity) oca.getChild(0, 0)).getCardNo()); ReservationDto rd = Ioc.getIoc().getDb("/sdcard/MTM/", Constants.APP_DATABASE).findFirst(selector); String card_no_6 = rd.getCardNo().substring(rd.getCardNo().length() - 6); cardNo.setText(getString(R.string._card_wh, card_no_6)); cardPoint.setText(getString(R.string.usable_card_idx, rd.getCardRemainingIdx())); } order_center_list.addFooterView(footerView); oca.notifyDataSetChanged(); } break; case 27: // 取消订单 try { List<HashMap<String, String>> cancelList = Handler_Json.jsonToList("orderCancelList", r.getContentAsString()); for (int i = 0; i < cancelList.size(); i++) { Ioc.getIoc() .getDb("/sdcard/MTM/", Constants.APP_DATABASE) .delete( SubmittedOrderEntity.class, WhereBuilder.b("orderNo", "=", cancelList.get(i).get("orderNo"))); } // group.remove(groupPosition); // 获取当前未支付订单数量 eventBus.post(new MSGCountEntity()); group.clear(); oca.notifyDataSetChanged(); rl_tools.setVisibility(View.GONE); } catch (Exception e) { e.printStackTrace(); } break; } } }
/** * ********************************************** * * @return void 返回类型 * @throws @Title: init @Description: TODO(初始化数据) 设定文件 * @date 2014-11-19 *********************************************** */ @InjectInit public void init() { db = Ioc.getIoc().getDb("/sdcard/MTM/", Constants.APP_DATABASE); dataList = new ArrayList<HashMap<String, String>>(); initView(); mImageFetcher = new ImageDownloader(getActivity(), 300); mImageFetcher.setLoadingImage(R.drawable.default_load_image); eventBus.register(this, "onEventPostRoomList"); // 设置list列表间距 srla = new ConditionsRoomAdapter( activity, listview_roomlist, dataList, R.layout.reservation_screeningroom_item); listview_roomlist.setAdapter(srla); // 这里是设置里面的文字 可以不设置 默认有 PullToRefreshManager.getInstance().setRelease_label("松开后刷新"); PullToRefreshManager.getInstance() .setUpdateTime(org.apache.http.impl.cookie.DateUtils.formatDate(new Date(), "yyyy-MM-dd")); showDialog(); ajaxRoomList(1); ajaxPOST(); gallery_hotel.setOnItemClickListener( new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { startActivity(new Intent(getActivity(), HotelViewPagerActivity.class)); } }); search_layout.setVisibility(View.GONE); }
/** @Function init @Description 初始化方法 初始化控件 @Input 无 @Return 无返回值 */ @InjectInit public void init() { textview_title.setVisibility(View.VISIBLE); getSupportActionBar().setTitle(""); title_center_layout.setVisibility(View.VISIBLE); foodTopDown.setVisibility(View.VISIBLE); eventBus.register(this, "onEventRefreshPayDetailData"); cardType = 99; // 默认筛选条件是间夜消费 // 初始化消费筛选列表 setPayDetailFilterDataList(); internetConfig = new InternetConfig(); internetConfig.setKey(1); intent = getIntent(); // 消费信息查询条件 filtermap = (Map<String, String>) Handler_Json.JsonToHashMap(intent.getStringExtra("payDetailFilter")); filtermap.put("pageNo", pageNo + ""); filtermap.put("pageCount", UrlParams.PAGESIZE + ""); pageUtil = new PageUtil(); adapter = new HotelCardPayDetailAdapter( hotelcard_pay_detail_list, mapList, R.layout.mem_hotelcard_pay_detail); hotelcard_pay_detail_list.setAdapter(adapter); showDialog(); // 打开模式层 // 调用消费明细信息接口 FastHttpHander.ajaxString( Url.METHOD_CARDCONSUMEARRAY, intent.getStringExtra("payDetailFilter"), internetConfig, this); }
@InjectInit public void init() { MSGInfoEntity msg = new MSGInfoEntity(); eventBus.post(msg); lv_list.setEmptyView(null_layout); datalist = new ArrayList<HashMap<String, String>>(); pageUtil = new PageUtil(); // getMsgTime(); setAdpater(); showDialog(); getMsgList(); }
@InjectInit private void init() { int width = activity.getResources().getDisplayMetrics().widthPixels; LinearLayout.LayoutParams layoutParams1 = new LinearLayout.LayoutParams(width, width / 3); FrameLayout.LayoutParams layoutParams2 = new FrameLayout.LayoutParams(width, width / 3); RelativeLayout linearLayout3 = (RelativeLayout) mView.findViewById(R.id.linearLayout3); imageView6 = (ImageView) mView.findViewById(R.id.imageView6); restaurant_orderseat_image = (IMGGallery) mView.findViewById(R.id.restaurant_orderseat_image); restaurant_orderseat_image.setLayoutParams(layoutParams2); RelativeLayout.LayoutParams layoutParams3 = new RelativeLayout.LayoutParams(width, width / 3); imageView6.setLayoutParams(layoutParams3); linearLayout3.setLayoutParams(layoutParams1); eventBus = EventBus.getDefault(); home_page = (ImageView) mView.findViewById(R.id.home_page); jzyd = (RelativeLayout) mView.findViewById(R.id.jzyd); jzyd_layout = (RelativeLayout) mView.findViewById(R.id.jzyd_layout); jzyd_layout.setOnClickListener(onClickListener); OnEventChange(); // 初始化轮询 initGallery(); }
/** * 未支付 作者:qqqqq on 2015/7/10 10:34 由于 ExpandableList 子列表数据异步加载 不及时,故把 adapter 写成内部类来调用 * 邮箱:[email protected] */ public class OrderGroupFragment extends BaseFragment { public ArrayList<OrdrDetail> group; // 组列表 @InjectView(R.id.order_center_list) private ExpandableListView order_center_list; @InjectView(R.id.null_layout) private LinearLayout null_layout; @InjectView(R.id.tx_select_card) private TextView tx_select_card; // 底部工具条 选择度假卡 按钮 @InjectView(R.id.tx_tool_left) private TextView tx_tool_left; // 底部工具条 左侧按钮 @InjectView(R.id.tx_tool_right) private TextView tx_tool_right; // 底部工具条 右侧按钮 @InjectView(R.id.rl_tools) private RelativeLayout rl_tools; /** 底部工具栏 view 初始化 */ // private TextView tx_tool_left, tx_tool_right, tx_select_card; // private RelativeLayout rl_tools; private int page = 1; public OrderCenterGroupAdapter oca; // 声明未支付订单组 适配器 private int groupPosition; // 记录当前点击组id private ArrayList<String> tempPosition; public ArrayList<OrderDetailEntity> child; // 子集合列表 public CommonAlert alert; private String positionJson; // 用于记录当前选择的数据 public CountDownTimer countDownTimer; EventBus eventBus = EventBus.getDefault(); View footerView; @Override public View onCreateView( LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // TODO Auto-generated method stub this.inflater = inflater; View rootView = inflater.inflate(R.layout.fragment_item_list, container, false); // fragment注解必须走这里 Handler_Inject.injectFragment(this, rootView); initNoPayExpandableListView(); return rootView; } /** 初始化底部菜单 */ private void initToolBar() { tx_tool_left.setText("取消订单"); tx_tool_left.setOnClickListener(onClick); tx_tool_right.setText("支付订单"); tx_tool_right.setOnClickListener(onClick); Animation animation = AnimationUtils.loadAnimation(activity, R.anim.push_bottom_in); rl_tools.startAnimation(animation); rl_tools.setVisibility(View.VISIBLE); } /** 底部菜单 click 事件 */ View.OnClickListener onClick = new View.OnClickListener() { @Override public void onClick(View view) { switch (view.getId()) { case R.id.tx_tool_left: // 取消订单 cancelOrderConfrim(); break; case R.id.tx_tool_right: // 支付订单 confirmPost(); break; } } }; // 取消订单提示 public void cancelOrderConfrim() { alert = new CommonAlert(activity); alert.setMessage("您将要取消一份已经提交但尚未支付的酒店订单组(含" + child.size() + "间房)"); alert.setTitle("请确认操作"); alert.setNegativeButton( "取消订单", new View.OnClickListener() { @Override public void onClick(View v) { cancelOrder(); alert.dismiss(); } }); alert.setPositiveButton( "保留订单", new View.OnClickListener() { @Override public void onClick(View v) { // startActivityForResult(new Intent(context, // LoginAndRegisterFragmentActivity.class).putExtra("tabType", // "cardlogin"), 2); alert.dismiss(); } }); } // 提示支付 public void confirmPost() { alert = new CommonAlert(activity); alert.setMessage("您是否要立刻支付该订单?(订单有效时间为30分钟,超过后该订单自动失效,您需要重新下单)"); alert.setTitle("订单已提交"); alert.setNegativeButton( "稍后支付", new View.OnClickListener() { @Override public void onClick(View v) { // startActivity(intent); alert.dismiss(); } }); alert.setPositiveButton( "立即支付", new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(activity, OrderCenterPayActivity.class); intent.putExtra("orderId", group.get(groupPosition).getOrderIdGroup()); intent.putExtra( "failureTime", ((OrdrDetail) oca.getGroup(groupPosition)).getFailureTime()); intent.putExtra("cardNo", ((OrderDetailEntity) oca.getChild(0, 0)).getCardNo()); intent.putExtra("orderDetail", positionJson); startActivity(intent); alert.dismiss(); } }); } /** 获取异步信息传递 */ Handler handler = new Handler() { public void handleMessage(Message msg) { Bundle bundle = msg.getData(); int position = bundle.getInt("groupPosition"); boolean isChecked = bundle.getBoolean("isChecked"); if (!isChecked) { order_center_list.collapseGroup(groupPosition); tx_tool_right.setVisibility(View.GONE); // tx_tool_right.setEnabled(false); // tx_tool_left.setEnabled(false); order_center_list.removeFooterView(footerView); } else { tx_tool_right.setVisibility(View.VISIBLE); // tx_tool_right.setEnabled(true); // tx_tool_left.setEnabled(true); } // Animation animation = null; } }; @Override public void onResume() { super.onResume(); // initNoPayExpandableListView(); } @Override public void setUserVisibleHint(boolean isVisibleToUser) { super.setUserVisibleHint(isVisibleToUser); if (isVisibleToUser) { // fragment可见时执行加载数据或者进度条等 if (group == null) { group = new ArrayList<>(); } ajaxOrder(); } else { // 不可见时不执行操作 } } // 初始化未支付订单组 private void initNoPayExpandableListView() { initFooterView(); rl_tools.setVisibility(View.GONE); tempPosition = new ArrayList<>(); if (null != countDownTimer) { countDownTimer.cancel(); countDownTimer = null; } order_center_list.setEmptyView(null_layout); child = new ArrayList<>(); child.add(new OrderDetailEntity()); group = new ArrayList<OrdrDetail>(); oca = new OrderCenterGroupAdapter( order_center_list, group, child, R.layout.order_group_item, handler); order_center_list.setAdapter(oca); // 禁用当前 组 点击事件(嵌套 listView 出现事件冲突) // 监听是否有展开的group order_center_list.setOnGroupExpandListener( new ExpandableListView.OnGroupExpandListener() { @Override public void onGroupExpand(int groupPosition) { for (int i = 0; i < oca.getGroupCount(); i++) { if (i != groupPosition && order_center_list.isGroupExpanded(groupPosition)) { order_center_list.collapseGroup(i); } } } }); // 禁用当前 组 点击事件(嵌套 listView 出现事件冲突) order_center_list.setOnGroupClickListener( new ExpandableListView.OnGroupClickListener() { @Override public boolean onGroupClick( ExpandableListView expandableListView, View view, int groupPos, long l) { groupPosition = groupPos; boolean expanded = expandableListView.isGroupExpanded(groupPosition); if (!expanded) { // 在这加载数据,推荐使用AsycnTask之类的在另一个线程里做喽 orderGroupDetailResult(group.get(groupPosition).getOrderIdGroup()); return true; } else { tx_tool_right.setVisibility(View.GONE); order_center_list.removeFooterView(footerView); } return false; } }); // ajaxOrder(); // if(MapVo.get("ticket")==null){ // getNoLoginOrder(); // }else{ // checkTicket(MapVo.get("ticket") + ""); // } } /** * * 验证登录状态 * * @param ticket 登录票据 */ private void checkTicket(String ticket) { showDialog(); String url = Url.MEM_TICKET_VALID; JsonObject json = new JsonObject(); json.addProperty("ticket", ticket); InternetConfig config = new InternetConfig(); config.setKey(9); FastHttpHander.ajaxString(url, json.toString(), config, this); } @InjectHttpOk(9) private void checkTicketResult(ResponseEntity r) { dismissDialog(); Map<String, String> map = r.getHeaders(); if ("OK".equals(map.get(HeaderConst.MYMHOTEL_STATUS))) { // Toast.makeText(context, msgArray[1], Toast.LENGTH_SHORT).show(); ajaxOrder(); } else { getNoLoginOrder(); } } private void initFooterView() { LayoutInflater inflater = LayoutInflater.from(activity); footerView = inflater.inflate(R.layout.order_group_footer, null); } /** 未支付订单 */ private void getNoLoginOrder() { Selector selector = Selector.from(SubmittedOrderEntity.class); selector.select(" * "); List<SubmittedOrderEntity> list = Ioc.getIoc().getDb("/sdcard/MTM/", Constants.APP_DATABASE).findAll(selector); if (list != null && list.size() > 0) { initToolBar(); OrdrDetail orderDetail = new OrdrDetail(); Long time = DateUtil.getStartAndEndToTimes( DateUtil.formatDateTime(new Date(), "yyyy-MM-dd HH:mm:ss"), list.get(0).getCreateTime()); orderDetail.setFailureTime(DateUtil.timer(time)); String orderGroupId = ""; String orderGroupNo = ""; for (int i = 0; i < list.size(); i++) { if (Handler_String.isBlank(orderGroupId) || i != (list.size() - 1)) { orderGroupNo += list.get(i).getOrderNo() + ","; orderGroupId += list.get(i).getOrderId() + ","; } else { orderGroupId += list.get(i).getOrderId(); orderGroupNo += list.get(i).getOrderNo(); } } Ioc.getIoc().getLogger().d("订单组id:" + orderGroupId); orderDetail.setOrderIdGroup(orderGroupId); group.add(orderDetail); oca.notifyDataSetChanged(); } } /** 未支付订单查询 */ private void ajaxOrder() { showDialog(); JsonObject json = new JsonObject(); json.addProperty("pageNo", page); json.addProperty("pageCount", 100); json.addProperty("statusKind", 1); InternetConfig config1 = new InternetConfig(); config1.setKey(10); // 未支付订单查询 FastHttpHander.ajaxString(Url.MEMBER_ORDER_ARRAY, json.toString(), config1, this); } /** 订单详情(多组查询) */ private void orderGroupDetailResult(String orderIdList) { showDialog(); JsonObject json = new JsonObject(); json.addProperty("orderIdList", orderIdList); InternetConfig config1 = new InternetConfig(); config1.setKey(11); // 未支付订单查询 FastHttpHander.ajaxString(Url.ORDER_DETAIL_ARRAY, json.toString(), config1, this); } /** 取消订单接口 */ private void cancelOrder() { showDialog(); JsonObject jsonParam = new JsonObject(); jsonParam.addProperty("orderNoList", group.get(groupPosition).getOrderNoGroup()); Ioc.getIoc().getLogger().i("取消预订接口参数:" + jsonParam.toString()); InternetConfig config = new InternetConfig(); config.setKey(27); FastHttpHander.ajaxString( Url.HOTELRESERVE_ACCURATE_CLEARRESERVE, jsonParam.toString(), config, this); } /** * 会员未支付订单 2014-8-14下午2:49:19 * * @author wangmingyu */ @InjectHttpOk({10, 11, 27}) public void resultOk(ResponseEntity r) { dismissDialog(); if (ResultParse.isResultOK(r, activity)) { switch (r.getKey()) { case 10: List<OrdrDetail> list = new ArrayList<OrdrDetail>(); list = Handler_Json.jsonToBean(OrdrDetail.class, "list", r.getContentAsString()); installData(list); break; case 11: // 查询订单组列表 positionJson = r.getContentAsString(); child = Handler_Json.jsonToBean(OrderDetailEntity.class, "list", r.getContentAsString()); if (child != null) { order_center_list.expandGroup(groupPosition); if (Handler_String.isBlank(((OrderDetailEntity) oca.getChild(0, 0)).getCardNo())) { footerView.findViewById(R.id.rl_type_card).setVisibility(View.GONE); footerView.findViewById(R.id.rl_type_money).setVisibility(View.VISIBLE); } else { footerView.findViewById(R.id.rl_type_card).setVisibility(View.VISIBLE); footerView.findViewById(R.id.rl_type_money).setVisibility(View.GONE); TextView cardNo = (TextView) footerView.findViewById(R.id.tv_card_No); TextView cardPoint = (TextView) footerView.findViewById(R.id.tv_card_point); Selector selector = Selector.from(ReservationDto.class); selector.select(" * "); selector.where("cardNo", "=", ((OrderDetailEntity) oca.getChild(0, 0)).getCardNo()); ReservationDto rd = Ioc.getIoc().getDb("/sdcard/MTM/", Constants.APP_DATABASE).findFirst(selector); String card_no_6 = rd.getCardNo().substring(rd.getCardNo().length() - 6); cardNo.setText(getString(R.string._card_wh, card_no_6)); cardPoint.setText(getString(R.string.usable_card_idx, rd.getCardRemainingIdx())); } order_center_list.addFooterView(footerView); oca.notifyDataSetChanged(); } break; case 27: // 取消订单 try { List<HashMap<String, String>> cancelList = Handler_Json.jsonToList("orderCancelList", r.getContentAsString()); for (int i = 0; i < cancelList.size(); i++) { Ioc.getIoc() .getDb("/sdcard/MTM/", Constants.APP_DATABASE) .delete( SubmittedOrderEntity.class, WhereBuilder.b("orderNo", "=", cancelList.get(i).get("orderNo"))); } // group.remove(groupPosition); // 获取当前未支付订单数量 eventBus.post(new MSGCountEntity()); group.clear(); oca.notifyDataSetChanged(); rl_tools.setVisibility(View.GONE); } catch (Exception e) { e.printStackTrace(); } break; } } } @InjectHttpErr({9, 10, 11, 27}) public void resultErr(ResponseEntity r) { if (r.getKey() == 9) { getNoLoginOrder(); } dismissDialog(); Toast.makeText(activity, ErrorMessageEnum.SYSTEM_EXCEPTION.getName(), Toast.LENGTH_SHORT) .show(); } // 过滤精准未支付订单 private void installData(List<OrdrDetail> list) { if (group != null) group.clear(); else group = new ArrayList<>(); if (null != list) { for (int i = 0; i < list.size(); i++) { OrdrDetail od = list.get(i); // 只获取 精准订单 if ("0".equals(od.getOrderType()) && OrderStateEnum.notPay.getCode().equals(od.getStatus())) { group.add(od); } } } if (group.size() > 0) { initToolBar(); } else { rl_tools.setVisibility(View.GONE); DbUtils db = Ioc.getIoc().getDb("/sdcard/MTM/", Constants.APP_DATABASE); db.deleteAll(SubmittedOrderEntity.class); // 获取当前未支付订单数量 postMsgCount(group.size()); } oca.notifyDataSetChanged(); } private void postMsgCount(int count) { MSGCountEntity msg = new MSGCountEntity(); msg.setCount(count); msg.setActivity(activity); eventBus.post(msg); } @Override public void onDestroyView() { dismissDialog(); Ioc.getIoc().getLogger().d("切换fragment"); if (null != countDownTimer) { countDownTimer.cancel(); countDownTimer.onFinish(); countDownTimer = null; Ioc.getIoc().getLogger().d("清除计时器"); } oca = null; super.onDestroyView(); } @Override public void onDestroy() { Ioc.getIoc().getLogger().d("销毁fragment"); dismissDialog(); if (null != countDownTimer) { countDownTimer.cancel(); countDownTimer.onFinish(); countDownTimer = null; Ioc.getIoc().getLogger().d("清除计时器"); } super.onDestroy(); } //////////////////////////////////////////////////////////////////////////////////////////////////// // 由于 ExpandableList 子列表数据异步加载 不及时,故把 adapter 写成内部类来调用 public class OrderCenterGroupAdapter extends BaseExpandableListAdapter { private Context context; private List<OrdrDetail> group; // 组列表 // private ArrayList<OrderDetailEntity> child; private int layout_id; int lastItem = -1; int result = 0; private Thread thread; ViewHolder viewHolder = null; ExpandableListView listView = null; Handler handler = null; private Map<Integer, Boolean> checkStatusMap = new HashMap<Integer, Boolean>(); public OrderCenterGroupAdapter( ExpandableListView listView, List<OrdrDetail> group, ArrayList<OrderDetailEntity> child, int layout_id, Handler handler) { this.context = listView.getContext(); this.listView = listView; this.group = group; this.layout_id = layout_id; // this.child=child; this.handler = handler; int position = 0; for (int i = 0; i < group.size(); i++) { checkStatusMap.put(position++, false); } // LvHeightUtil.setListViewHeightBasedOnChildren(listView); } public class ViewHolder { CheckBox order_checkBox; // 选择按钮 ImageView del_img; // 删除按钮 RelativeLayout relative_layout5; ImageView hotel_order_detail_down; TextView order_heard_show; // 用于显示精准预订 入住离店时间 或 传统预订 订单号 TextView hotel_order_payState; TextView confirm_no; TextView create_order_date; // 创建时间 TextView order_check_in_date; // 入住和离店时间 TextView text_count_days; TextView hotel_room_type, hotel_order_inroom_day, hotel_order_outroom_day, hotel_order_no, tx_guest_name, tx_guest_phone, point_value, price_value; } @Override public int getGroupCount() { return group.size(); } @Override public int getChildrenCount(int i) { return group.get(i).getOrderIdGroup().split(",").length; } @Override public Object getGroup(int i) { return group.get(i); } @Override public Object getChild(int i, int i1) { return child.get(i1); } @Override public long getGroupId(int i) { return i; } @Override public long getChildId(int i, int i1) { return i1; } @Override public boolean hasStableIds() { return true; } @Override public View getGroupView( final int groupPosition, boolean isExpanded, View convertView, ViewGroup viewGroup) { if (convertView == null) { viewHolder = new ViewHolder(); LayoutInflater inflater = LayoutInflater.from(context); convertView = inflater.inflate(layout_id, null); viewHolder.hotel_order_payState = (TextView) convertView.findViewById(R.id.hotel_order_payState); viewHolder.create_order_date = (TextView) convertView.findViewById(R.id.create_order_date); viewHolder.del_img = (ImageView) convertView.findViewById(R.id.del_img); viewHolder.hotel_order_payState = (TextView) convertView.findViewById(R.id.hotel_order_payState); viewHolder.relative_layout5 = (RelativeLayout) convertView.findViewById(R.id.relative_layout5); viewHolder.hotel_order_detail_down = (ImageView) convertView.findViewById(R.id.hotel_order_detail_down); viewHolder.order_checkBox = (CheckBox) convertView.findViewById(R.id.order_checkBox); viewHolder.order_check_in_date = (TextView) convertView.findViewById(R.id.order_check_in_date); viewHolder.order_checkBox.setFocusable(false); viewHolder.order_checkBox.setClickable(false); Timers( timerCount(group.get(groupPosition).getFailureTime()), viewHolder.order_check_in_date, groupPosition); convertView.setTag(viewHolder); } else { viewHolder = (ViewHolder) convertView.getTag(); } if (isExpanded) { viewHolder.order_checkBox.setChecked(true); } else { viewHolder.order_checkBox.setChecked(false); } viewHolder.order_checkBox.setOnCheckedChangeListener( new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton compoundButton, boolean b) { // 异步传递信息 Message msg = new Message(); Bundle build = new Bundle(); build.putInt("groupPosition", groupPosition); build.putBoolean("isChecked", b); msg.setData(build); handler.sendMessage(msg); } }); // RelativeLayout relative_layout = (RelativeLayout) // convertView.findViewById(R.id.relative_layout5); // relative_layout.setVisibility(View.GONE); viewHolder.hotel_order_payState.setBackgroundResource(R.drawable.order_red); viewHolder.hotel_order_payState.setText( OrderStateEnum.getOrderStateEnumName(group.get(groupPosition).getStatus())); viewHolder.order_checkBox.setText("已经提交订单 请在倒计时结束前支付"); // // viewHolder.create_order_date.setText(group.get(groupPosition).getOrderInfo().getCreateDate()); viewHolder.order_check_in_date.setText("剩余支付时间 " + group.get(groupPosition).getFailureTime()); return convertView; } @Override public View getChildView( int groupPosition, int childPosition, boolean b, View view, ViewGroup viewGroup) { // OrderCenterItemAdapter carStyleAdapter = new OrderCenterItemAdapter(context,new // HashMap<String ,String>(),R.layout.order_center_child_item); ViewHolder viewHolder1 = null; if (view == null) { viewHolder1 = new ViewHolder(); LayoutInflater inflater = LayoutInflater.from(context); view = inflater.inflate(R.layout.order_group_middle, null); viewHolder1.order_heard_show = (TextView) view.findViewById(R.id.order_heard_show); viewHolder1.hotel_room_type = (TextView) view.findViewById(R.id.hotel_room_type); viewHolder1.hotel_order_inroom_day = (TextView) view.findViewById(R.id.hotel_order_inroom_day); viewHolder1.hotel_order_outroom_day = (TextView) view.findViewById(R.id.hotel_order_outroom_day); viewHolder1.hotel_order_no = (TextView) view.findViewById(R.id.hotel_order_no); viewHolder1.tx_guest_name = (TextView) view.findViewById(R.id.tx_guest_name); viewHolder1.tx_guest_phone = (TextView) view.findViewById(R.id.tx_guest_phone); viewHolder1.point_value = (TextView) view.findViewById(R.id.point_value); viewHolder1.price_value = (TextView) view.findViewById(R.id.price_value); viewHolder1.text_count_days = (TextView) view.findViewById(R.id.text_count_days); view.setTag(viewHolder1); } else { viewHolder1 = (ViewHolder) view.getTag(); } if (child != null) { viewHolder1.hotel_order_inroom_day.setText( DateUtil.formatStringDateTime( child.get(childPosition).getRoomInfo().getStartDate(), "MM月dd日")); viewHolder1.hotel_order_outroom_day.setText( DateUtil.formatStringDateTime( child.get(childPosition).getRoomInfo().getEndDate(), "MM月dd日")); viewHolder1.order_heard_show.setText(child.get(childPosition).getRoomInfo().getHotelName()); viewHolder1.hotel_room_type.setText( child.get(childPosition).getRoomInfo().getViewIntro() + child.get(childPosition).getRoomInfo().getRoomTypeName() + "-" + child.get(childPosition).getRoomInfo().getFloorName() + "-" + child.get(childPosition).getRoomInfo().getRoomCode() + " " + child.get(childPosition).getRoomInfo().getBedTypeContent()); int subday = DateUtil.nDaysBetweenTwoDate( child.get(childPosition).getRoomInfo().getStartDate(), child.get(childPosition).getRoomInfo().getEndDate()); viewHolder1.text_count_days.setText( context.getString(R.string._subday, subday + "")); // 共计天数 } return view; } private Long timerCount(String failureTime) { Long s = 0L; if (!Handler_String.isBlank(failureTime)) { String[] date = failureTime.split(":"); s = Long.valueOf(date[0]) * 3600; // 小时 s += Long.valueOf(date[1]) * 60; // 分钟 s += Long.valueOf(date[2]); // 秒 } return s; } // 计算倒计时,防止 多数据 计算倒计时或 及多次创建对象 出现内存占用过多 使用一个现成处理 private void Timers(Long time, final TextView view, final int groupPosition) { countDownTimer = new CountDownTimer(time * 1000, 1000) { @Override public void onTick(long l) { if (getActivity() != null && group != null && group.size() > 0) { // 防止在切换时无限调用 group.get(groupPosition).setFailureTime(DateUtil.timer(l / 1000)); Ioc.getIoc().getLogger().d(DateUtil.timer(l / 1000)); notifyDataSetChanged(); } else { cancel(); } } @Override public void onFinish() { if (getActivity() != null && group != null && group.size() > 0) { // 防止在切换时无限调用 group.get(groupPosition).setFailureTime("00:00:00"); } notifyDataSetChanged(); } }.start(); } @Override public boolean isChildSelectable(int i, int i1) { return true; } } }
private void postMsgCount(int count) { MSGCountEntity msg = new MSGCountEntity(); msg.setCount(count); msg.setActivity(activity); eventBus.post(msg); }
/** * @copyright bupt * @author 李洁 * @date 2014-11-19 @Description 会员中心--卡消费明细列表 */ @InjectLayer( value = R.layout.mem_hotelcard_pay_detail_list, parent = R.id.center_common, isFull = false, isTitle = true) public class HotelCardPayDetailActivity extends CommonActivity { @InjectView(value = R.id.title_center_layout) LinearLayout title_center_layout; EventBus eventBus = EventBus.getDefault(); @InjectView(value = R.id.hotelcard_pay_detail_list) ListView hotelcard_pay_detail_list; @InjectView(value = R.id.scrollView1, pull = true) ScrollView scrollView1; ArrayList<HashMap<String, String>> mapList = new ArrayList<HashMap<String, String>>(); HotelCardPayDetailAdapter adapter; // 适配器 @InjectView(value = R.id.foodTopDown) ImageView foodTopDown; InternetConfig internetConfig; // 网络配置 PageUtil pageUtil; int count; int pageNo = 1; // 筛选 ArrayList<HashMap<String, String>> payDetailmapList; // 筛选条件 Map<String, String> filtermap = new HashMap<String, String>(); Intent intent; int cardType; /** @Function init @Description 初始化方法 初始化控件 @Input 无 @Return 无返回值 */ @InjectInit public void init() { textview_title.setVisibility(View.VISIBLE); getSupportActionBar().setTitle(""); title_center_layout.setVisibility(View.VISIBLE); foodTopDown.setVisibility(View.VISIBLE); eventBus.register(this, "onEventRefreshPayDetailData"); cardType = 99; // 默认筛选条件是间夜消费 // 初始化消费筛选列表 setPayDetailFilterDataList(); internetConfig = new InternetConfig(); internetConfig.setKey(1); intent = getIntent(); // 消费信息查询条件 filtermap = (Map<String, String>) Handler_Json.JsonToHashMap(intent.getStringExtra("payDetailFilter")); filtermap.put("pageNo", pageNo + ""); filtermap.put("pageCount", UrlParams.PAGESIZE + ""); pageUtil = new PageUtil(); adapter = new HotelCardPayDetailAdapter( hotelcard_pay_detail_list, mapList, R.layout.mem_hotelcard_pay_detail); hotelcard_pay_detail_list.setAdapter(adapter); showDialog(); // 打开模式层 // 调用消费明细信息接口 FastHttpHander.ajaxString( Url.METHOD_CARDCONSUMEARRAY, intent.getStringExtra("payDetailFilter"), internetConfig, this); } /** @Function resultOk @Description 消费明细列表响应结果 @Input r:响应结果封装实体类 @Return 无返回值 */ @InjectHttpOk(1) public void resultOk(ResponseEntity r) { Ioc.getIoc().getLogger().i("消费明细列表返回结果【" + r + "】"); try { // 返回结果格式化处理后OK进行数据处理 if (ResultParse.isResultOK(r, this)) { count = getTotalCount(r.getContentAsString()); if (count == 0) { mapList.clear(); adapter.notifyDataSetChanged(); // 列表变化 cancelDialog(); return; } this.getMapList(r.getContentAsString()); adapter.notifyDataSetChanged(); // 列表变化 } pageUtil.isEndRefreshPage(); // 结束刷新 cancelDialog(); } catch (Exception e) { cancelDialog(); } } /** * @Function pageRefresh @Description 分页 * * @input type:1:向下翻页 2,向上翻页 * @return 无返回值 */ @InjectPullRefresh public void pageRefresh(int type) { // 消费列表接口分页 Ioc.getIoc().getLogger().i("红树林卡消费接口:[" + Url.METHOD_CARDCONSUMEARRAY + "]"); internetConfig.setKey(1); switch (type) { case InjectView.PULL: // 向下翻页 pageNo++; if (pageNo > count) { pageUtil.isEndDownPage(); // 结束翻页 return; } // 设置输入参数 filtermap.put("pageNo", pageNo + ""); filtermap.put("pageCount", UrlParams.PAGESIZE + ""); showDialog(); // 调用后接口 FastHttpHander.ajaxString( Url.METHOD_CARDCONSUMEARRAY, Handler_Json.beanToJson(filtermap), internetConfig, this); break; case InjectView.DOWN: pageUtil.isEndDownPage(); break; } } /** @Function resultErr @Description 请求结果失败处理 @Input r:请求结果封装实体类 @Return 无返回值 */ @InjectHttpErr(value = {1}) public void resultErr(ResponseEntity r) { switch (r.getKey()) { // 消费明细 case 1: Ioc.getIoc().getLogger().i("消费明细接口获取失败,请检查网络或者接口"); Toast.makeText(this, "消费明细接口获取失败,请检查网络或者接口", Toast.LENGTH_SHORT).show(); break; } cancelDialog(); } /** * @Function onEventRefreshPayDetailData @Description 根据请求条件 调用消费明细接口 @Input * entity:请求参数实体类数据 @Return 无返回值 */ public void onEventRefreshPayDetailData(MenuRefreshEventEntity entity) { // 排序方式 if (!Handler_String.isBlank(entity.getMenuKindCode()) && !Handler_String.isBlank(entity.getMenuKindName())) { cardType = Integer.parseInt(entity.getMenuKindCode()); textview_title.setText(entity.getMenuKindName()); mapList.clear(); pageNo = 1; // 设置输入参数 if (entity.getMenuKindCode().equals("0")) { filtermap.put("cardType", ""); } else { filtermap.put("cardType", entity.getMenuKindCode()); } filtermap.put("pageNo", pageNo + ""); filtermap.put("pageCount", UrlParams.PAGESIZE + ""); showDialog(); // 打开模式层 // 调用消费明细信息接口 FastHttpHander.ajaxString( Url.METHOD_CARDCONSUMEARRAY, Handler_Json.beanToJson(filtermap), internetConfig, this); } foodTopDown.setImageResource(R.drawable.arrow_down_white); } /** @Function titleClick @Description 标题单机时间 @Input view:被点击的控件 @Return 无返回值 */ @InjectMethod( @InjectListener( ids = {R.id.textview_title}, listeners = {OnClick.class})) public void titleClick(View view) { Map<String, String> map = new HashMap<String, String>(); map.put("menuKindCode", cardType + ""); MenuCategoryPopupWindow menu = new MenuCategoryPopupWindow(this, payDetailmapList, map); menu.showAsDropDown(getActionBarToolbar(), 0, 0); foodTopDown.setImageResource(R.drawable.arrow_up_white); // Animation at=AnimationUtils.loadAnimation(this, R.anim.push_bottom_out); // at.setDuration(300); // menu.startAnimation(at); } /** @Function setPayDetailFilterDataList @Description 设置消费明细条件列表 @Input 无 @Return 无返回值 */ private void setPayDetailFilterDataList() { payDetailmapList = new ArrayList<HashMap<String, String>>(); HashMap<String, String> map1 = new HashMap<String, String>(); map1.put("value", "间夜点数"); map1.put("code", "99"); HashMap<String, String> map2 = new HashMap<String, String>(); map2.put("value", "预分红账户"); map2.put("code", "40"); HashMap<String, String> map3 = new HashMap<String, String>(); map3.put("value", "提现账户"); map3.put("code", "50"); HashMap<String, String> map4 = new HashMap<String, String>(); map4.put("value", "红树林币账户"); map4.put("code", "00"); HashMap<String, String> map5 = new HashMap<String, String>(); map5.put("value", "娱乐吧账户(casino币)"); map5.put("code", "20"); HashMap<String, String> map6 = new HashMap<String, String>(); map6.put("value", "积分账户"); map6.put("code", "30"); payDetailmapList.add(map1); payDetailmapList.add(map2); payDetailmapList.add(map3); payDetailmapList.add(map4); payDetailmapList.add(map5); payDetailmapList.add(map6); } /** * @Function getMapList @Description 格式化消费订单列表,封装到适配器中 @Input jsonString:消费明细json格式 @Return 无返回值 */ public ArrayList<HashMap<String, String>> getMapList(String jsonString) { ArrayList<HashMap<String, String>> list = (ArrayList<HashMap<String, String>>) Handler_Json.jsonToListOrMap("list", jsonString); for (HashMap<String, String> map : list) { // 格式化时间 Handler_Time costDate = Handler_Time.getInstance(map.get("costDate").toString()); HashMap<String, String> hashMap = new HashMap<String, String>(); hashMap.put( "hotel_card_recordType", map.get("unitName").toString() + "-" + map.get("recordType").toString()); hashMap.put( "hotel_card_costime", DateUtil.formatStringDateTime(map.get("costDate").toString(), "yyyy.MM.dd HH:mm")); hashMap.put("hotel_card_unitcost", map.get("unitCost").toString()); mapList.add(hashMap); } return mapList; } /** * 红树林卡消费列表信息总条数 * * @param jsonString 红树林卡消费明细json数据 */ public int getTotalCount(String jsonString) { return Integer.parseInt(Handler_Json.getValue("count", jsonString).toString()); } @Override protected void onDestroy() { super.onDestroy(); eventBus.unregister(this); cancelDialog(); } }
@Override protected void onDestroy() { super.onDestroy(); eventBus.unregister(this); cancelDialog(); }
/** * ********************************************** * * @copyright:bupt * @author: 王明雨 * @date:2014-11-19 @Description: (条件筛选房间) ************************************************ */ public class ConditionsRoomFragment extends BaseFragment { @InjectView(value = R.id.listview_roomlist, down = true, pull = true) ListView listview_roomlist; IMGGallery gallery_hotel; LinearLayout indicator_container; TextView text_startDate; TextView text_endDate; TextView text_count_days; TextView text_hotelname; TextView text_hotelidx; public View heardView; @InjectView(value = R.id.search_layout) RelativeLayout search_layout; /** * 图片下载器 * * @author wangmingyu 2014-9-17 */ // 图片集合 private ArrayList<HashMap<String, String>> imgList = new ArrayList<HashMap<String, String>>(); // 房间列表集合 private ArrayList<HashMap<String, String>> dataList; // 当前选中图片itemid private int preSelImgIndex = 0; // 筛选房间适配器 private ConditionsRoomAdapter srla; // 图片适配器 private ImagePagerAdapter ipaAdapter; // 目前位置 保存的预订选择信息 private ReservationDto rd; private EventBus eventBus = EventBus.getDefault(); private int pageNo = 1; // 当前页数 public static ImageDownloader mImageFetcher = null; DbUtils db = null; @Override public View onCreateView( LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { this.inflater = inflater; // 出事化布局文件 View rootView = inflater.inflate(R.layout.reservation_conditions_room_main, container, false); // fragment注解必须走这里 Handler_Inject.injectFragment(this, rootView); return rootView; } /** * ********************************************** * * @param type 设定文件 * @return void 返回类型 * @throws @Title: callListView @Description: TODO(上滑 下滑 监控) * @date 2014-11-19 *********************************************** */ @InjectPullRefresh protected void callListView(int type) { // 这里的type来判断是否是下拉还是上拉 switch (type) { case InjectView.PULL: ajaxRoomList(pageNo); break; case InjectView.DOWN: dataList.clear(); srla.notifyDataSetChanged(); ajaxRoomList(1); break; } } /** * ********************************************** * * @return void 返回类型 * @throws @Title: init @Description: TODO(初始化数据) 设定文件 * @date 2014-11-19 *********************************************** */ @InjectInit public void init() { db = Ioc.getIoc().getDb("/sdcard/MTM/", Constants.APP_DATABASE); dataList = new ArrayList<HashMap<String, String>>(); initView(); mImageFetcher = new ImageDownloader(getActivity(), 300); mImageFetcher.setLoadingImage(R.drawable.default_load_image); eventBus.register(this, "onEventPostRoomList"); // 设置list列表间距 srla = new ConditionsRoomAdapter( activity, listview_roomlist, dataList, R.layout.reservation_screeningroom_item); listview_roomlist.setAdapter(srla); // 这里是设置里面的文字 可以不设置 默认有 PullToRefreshManager.getInstance().setRelease_label("松开后刷新"); PullToRefreshManager.getInstance() .setUpdateTime(org.apache.http.impl.cookie.DateUtils.formatDate(new Date(), "yyyy-MM-dd")); showDialog(); ajaxRoomList(1); ajaxPOST(); gallery_hotel.setOnItemClickListener( new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { startActivity(new Intent(getActivity(), HotelViewPagerActivity.class)); } }); search_layout.setVisibility(View.GONE); } /** * @return void 返回类型 * @throws @Title: initView @Description: 初始化控件 */ public void initView() { LayoutInflater inflater = android.view.LayoutInflater.from(getActivity()); heardView = inflater.inflate(R.layout.reservation_conditions_room, null); listview_roomlist.addHeaderView(heardView); gallery_hotel = (IMGGallery) heardView.findViewById(R.id.gallery_hotel); indicator_container = (LinearLayout) heardView.findViewById(R.id.indicator_container); text_startDate = (TextView) heardView.findViewById(R.id.text_startDate); text_endDate = (TextView) heardView.findViewById(R.id.text_endDate); text_count_days = (TextView) heardView.findViewById(R.id.text_count_days); text_hotelname = (TextView) heardView.findViewById(R.id.text_hotelname); text_hotelidx = (TextView) heardView.findViewById(R.id.text_hotelidx); rd = (ReservationDto) MapVo.get("reservtion"); text_hotelname.setText(rd.getHotelName()); text_hotelidx.setText(rd.getProjectIdx()); text_startDate.setText(rd.getStartDate()); text_endDate.setText(rd.getEndDate()); int subDay = DateUtil.nDaysBetweenTwoDate(rd.getStartDate(), rd.getEndDate()); text_count_days.setText(getString(R.string._subday, subDay)); } /** 获取未提交订单 */ private List<OrderCenterEntity> getNotSubOrder(String startDate, String endDate) { Selector selector = Selector.from(OrderCenterEntity.class); selector.select(" * "); selector.where("startDate", "=", startDate); selector.and("endDate", "=", endDate); List<OrderCenterEntity> list = db.findAll(selector); return list; } /** * ********************************************** * * @return void 返回类型 * @throws @Title: ajaxPOST @Description: (酒店介绍 图片列表 请求操作) 设定文件 * @date 2014-11-19 *********************************************** */ private void ajaxPOST() { rd = (ReservationDto) MapVo.get("reservtion"); if (rd == null) { Toast.makeText(activity, "数据异常,请重新选择酒店及入住时间", Toast.LENGTH_SHORT).show(); } else { if (rd.getHotelCode() != null && rd.getHotelCode() != "") { String jsonParams = "{'hotelCode':" + rd.getHotelCode() + "}"; InternetConfig config = new InternetConfig(); config.setKey(111); FastHttpHander.ajaxString(Url.HOTELRESERVE_ASSET_BULIDING_ARRAY, jsonParams, config, this); } else { Toast.makeText(activity, "数据异常,请重新选择酒店及入住时间", Toast.LENGTH_SHORT).show(); } } } /** * ********************************************** * * @param r 设定文件 * @return void 返回类型 * @throws @Title: fastResult @Description: (酒店楼宇接口 返回) * @date 2014-11-19 *********************************************** */ @InjectHttpOk(value = {111}) protected void fastResult(ResponseEntity r) { System.out.println(r.getStatus()); switch (r.getStatus()) { case FastHttp.result_ok: if (ResultParse.reservationIsResultOK(r, activity)) { imgList = Handler_Json.JsonToCollection(r.getContentAsString()); // InitFocusIndicatorContainer(); // initGallery(); ipaAdapter = new ImagePagerAdapter(activity, imgList, indicator_container); gallery_hotel.setAdapter(ipaAdapter); ipaAdapter.notifyDataSetChanged(); gallery_hotel.setFocusable(true); } break; case FastHttp.result_net_err: Toast.makeText(activity, "网络异常 ,请检查您确保开启无线网络", Toast.LENGTH_SHORT).show(); break; } } /** * ********************************************** * * @param r 设定文件 * @return void 返回类型 * @throws @Title: result @Description: (推荐房间返回) * @date 2014-11-19 *********************************************** */ @InjectHttpOk(1) public void result(ResponseEntity r) { dismissDialog(); switch (r.getStatus()) { case FastHttp.result_ok: ArrayList<HashMap<String, String>> list = null; try { // if (ResultParse.reservationIsResultOK(r, activity)) { String json = Handler_Json.getValue("list", r.getContentAsString()).toString(); String s = Handler_Json.getValue("pageNo", r.getContentAsString()).toString(); pageNo = Integer.valueOf(s) + 1; if (!"".equals(json)) { // 判断查询数据是否为空 , list = Handler_Json.JsonToCollection(json); getList(list); } else { // 为空数据 初始化当前页数1 ,展示无数据图片 // pageNo = 1; // dataList.clear(); Toast.makeText(activity, "无数据", Toast.LENGTH_SHORT).show(); } Ioc.getIoc().getLogger().i(" 完成 刷新"); // } } catch (Exception e) { e.printStackTrace(); } break; case FastHttp.result_net_err: Toast.makeText(activity, "请求错误", Toast.LENGTH_SHORT).show(); break; } // 完成 加载更多 PullToRefreshManager.getInstance().onFooterRefreshComplete(); // 完成 刷新 PullToRefreshManager.getInstance().onHeaderRefreshComplete(); // 关闭顶部的下拉 PullToRefreshManager.getInstance().headerUnable(); // 打开顶部的下拉 PullToRefreshManager.getInstance().headerEnable(); // 关闭底部的加载 PullToRefreshManager.getInstance().footerUnable(); // 打开顶部的加载 PullToRefreshManager.getInstance().footerEnable(); } /** * ********************************************** * * @param r 返回信息 * @return void 返回类型 * @throws @Title: resultErr @Description: (http请求错误返回方法) * @date 2014-11-19 *********************************************** */ @InjectHttpErr(value = {1, 111}) private void resultErr(ResponseEntity r) { Ioc.getIoc().getLogger().e(r.getContentAsString()); dismissDialog(); Toast.makeText(activity, "请求错误", Toast.LENGTH_SHORT).show(); } /** * ********************************************** * * @param list 设定文件 * @return void 返回类型 * @throws @Title: getList @Description: TODO(为适配器装载数据) * @date 2014-11-19 *********************************************** */ private void getList(ArrayList<HashMap<String, String>> list) { // RoomResourceDto if (list != null) { // dataList.clear(); List<OrderCenterEntity> orderList = getNotSubOrder(rd.getStartDate(), rd.getEndDate()); for (int i = 0; i < list.size(); i++) { HashMap<String, String> hashMap = new HashMap<String, String>(); HashMap<String, String> r = list.get(i); if (orderList != null) { for (int j = 0; j < orderList.size(); j++) { if (orderList.get(j).getRoomCode().equals(r.get("roomCode"))) { hashMap.put("img_sel", "1"); // 是否存在 1是 空或0 不是 } } } hashMap.put( "text_room_name", r.get("roomTypeName") + "-" + r.get("floorName") + "-" + r.get("roomCode")); hashMap.put("text_myExam_content", r.get("viewIntro")); hashMap.put("text_room_idx", getString(R.string._room_idx, r.get("roomIdx"))); // hashMap.put("text_room_idx", // getString(R.string._room_idx,rd.get("roomIdx"))); // if (null != rd.getCardNo() && !"".equals(rd.getCardNo())) { // hashMap.put("text_pointsNight", r.get("idx") + "间夜"); // } else { // hashMap.put("text_pointsNight", // getString(R.string._price, r.get("price"))); // } hashMap.put("text_pointsNight", getString(R.string._price, r.get("price"))); hashMap.put("text_infarIntro", r.get("infarIntro")); hashMap.put("roomCode", r.get("roomCode")); hashMap.put("image_myExam_infoIcon", r.get("logoUrl")); // rd.get("logoUrl") hashMap.put("btn_reservation", "预订"); dataList.add(hashMap); } } srla.notifyDataSetChanged(); } /** * ********************************************** * * @param parent * @param view * @param position * @param id 设定文件 * @return void 返回类型 * @throws @Title: itemClick @Description: TODO(酒店图片轮播点击事件) * @date 2014-11-19 *********************************************** */ @InjectMethod( @InjectListener( ids = {R.id.gallery_hotel}, listeners = {OnItemClick.class})) public void itemClick(AdapterView<?> parent, View view, int position, long id) { Toast.makeText(activity, "酒店预览", Toast.LENGTH_SHORT).show(); } /** * ********************************************** * * @param parent 父类 * @param v 当前控件 * @param selIndex 当前下标 * @param id 设定文件 id * @return void 返回类型 * @throws @Title: itemSelected @Description: TODO(切换图片选择背景) * @date 2014-11-19 *********************************************** */ @InjectMethod( value = @InjectListener( ids = {R.id.gallery_hotel}, listeners = {OnItemSelected.class})) public void itemSelected(AdapterView<?> parent, View v, int selIndex, long id) { selIndex = selIndex % imgList.size(); if (imgList.size() > 1) { // 修改上一次选中项的背景 ImageView preSelImg = (ImageView) indicator_container.findViewById(preSelImgIndex); preSelImg.setImageResource(R.drawable.ic_focus); // 修改当前选中项的背景 ImageView curSelImg = (ImageView) indicator_container.findViewById(selIndex); curSelImg.setImageResource(R.drawable.ic_focus_select); // text_hotelName.setText(selIndex + ""); preSelImgIndex = selIndex; } } /** * ********************************************** * * @param page 设定文件 * @return void 返回类型 * @throws @Title: ajaxRoomList @Description: TODO(获取房间列表) * @date 2014-11-19 *********************************************** */ private void ajaxRoomList(int page) { RoomResourceParamDto rrpd = new RoomResourceParamDto(); rrpd.setStartDate(rd.getStartDate()); rrpd.setEndDate(rd.getEndDate()); rrpd.setHotelCode(rd.getHotelCode()); rrpd.setCardNo(rd.getCardNo()); rrpd.setPageNo(page + ""); rrpd.setPageCount("5"); ArrayList<HashMap<String, String>> conditions = (ArrayList<HashMap<String, String>>) MapVo.get("conditions"); if (conditions != null) { rrpd.setBuildingCode(conditions.get(3).get("text_type_code") + ""); rrpd.setFloorCode(conditions.get(4).get("text_type_code") + ""); rrpd.setInfarIntro(conditions.get(2).get("text_type_code") + ""); rrpd.setRoomTypeCode(conditions.get(0).get("text_type_code") + ""); rrpd.setViewCode(conditions.get(1).get("text_type_code") + ""); rrpd.setRoomIdxRange(conditions.get(5).get("text_type_code") + ""); } InternetConfig config = new InternetConfig(); config.setKey(1); String json = Handler_Json.beanToJson(rrpd); Ioc.getIoc().getLogger().i(json); FastHttpHander.ajaxString(Url.HOTELRESERVE_ASSET_RECOMMENDROOMARRAY, json, config, this); } /** * ********************************************** * * @param rle 设定文件 * @return void 返回类型 * @throws @Title: onEventPostRoomList @Description: TODO(该方法用于 重新请求房间列表 注: 公共方法根据ioc 反射定位方法) * @date 2014-11-19 *********************************************** */ public void onEventPostRoomList(RoomListEventEntity rle) { // menu.showMenu(); showDialog(); dataList.clear(); // 筛选房间 清空当前列表 ajaxRoomList(1); // 筛选模式下 总是第一页 } @Override public void onDestroy() { super.onDestroy(); gallery_hotel.destroy(); MapVo.remove("conditions"); } }
/** * *********************************************** * * @copyright:bupt * @author: 王明雨 * @date:2015-1-9 @Description:TODO (消息中心) ************************************************ */ public class MSGInfoFragment extends BaseFragment { EventBus eventBus = EventBus.getDefault(); @InjectView(value = R.id.lv_list, down = true, pull = true) public ListView lv_list; private String cardNo; private String subType; private int pageNo = 1; PageUtil pageUtil; // 分页 ArrayList<HashMap<String, String>> datalist; @InjectView(value = R.id.null_layout) public LinearLayout null_layout; MSGInfoAdapter adapter; @Override public View onCreateView( LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { this.inflater = inflater; View rootView = inflater.inflate(R.layout.acitivity_consumption_list, container, false); Handler_Inject.injectFragment(this, rootView); return rootView; } @InjectInit public void init() { MSGInfoEntity msg = new MSGInfoEntity(); eventBus.post(msg); lv_list.setEmptyView(null_layout); datalist = new ArrayList<HashMap<String, String>>(); pageUtil = new PageUtil(); // getMsgTime(); setAdpater(); showDialog(); getMsgList(); } /** * *********************************************** @Title: click @Description: TODO(点击空数据页面 加载信息) * * @param view 设定文件 * @return void 返回类型 * @throws * @date 2015-2-6 *********************************************** */ @InjectMethod( @InjectListener( ids = {R.id.img_null_data}, listeners = {OnClick.class})) public void click(View view) { getMsgList(); } @InjectMethod( @InjectListener( ids = {R.id.lv_list}, listeners = {OnItemClick.class})) public void onItemClick(AdapterView<?> parent, View view, int position, long id) { TextView text_url = (TextView) view.findViewById(R.id.tx_content_url); Intent intent = new Intent().setClass(activity, WebViewAactiviy.class); intent.putExtra("url", text_url.getText() + ""); intent.putExtra("title", "消息详情"); activity.startActivity(intent); } @Override public void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); eventBus.unregister(this); } @InjectPullRefresh public void callListView(int type) { // 这里的type来判断是否是下拉还是上拉 switch (type) { case InjectView.DOWN: pageNo = 1; getMsgList(); break; case InjectView.PULL: getMsgList(); break; } } /** * *********************************************** @Title: getMsgList @Description: TODO(获取消息列表) * 设定文件 * * @return void 返回类型 * @throws * @date 2015-2-6 *********************************************** */ private void getMsgList() { // showDialog(); String url = Url.SERVICE_MSG_ARRAY_URL; JsonObject json = new JsonObject(); json.addProperty("pageNo", pageNo); json.addProperty("pageCount", 10); json.addProperty("msgTime", ""); InternetConfig config = new InternetConfig(); config.setKey(1); config.setHead(CommonUtils.inHeaders()); FastHttpHander.ajaxString(url, json.toString(), config, this); } @InjectHttpOk(1) public void resultOk(ResponseEntity r) { dismissDialog(); if (ResultParse.isResultOK(r, activity)) { ArrayList<HashMap<String, String>> list = Handler_Json.jsonToList("list", r.getContentAsString()); String page = (String) Handler_Json.getValue("pageNo", r.getContentAsString()); String time = (String) Handler_Json.getValue("sysDateTime", r.getContentAsString()); MangrovePayApp.msgTime = time; MangrovePayApp.app.setData("msgTime", time); Ioc.getIoc().getLogger().i("-------------------------"); Ioc.getIoc().getLogger().i("-------------系统时间:" + MangrovePayApp.msgTime); if (!Handler_String.isBlank(page)) { pageNo = Integer.valueOf(page) + 1; } initData(list, page); } } @InjectHttpErr(value = {1, 3}) public void resultErr(ResponseEntity r) { dismissDialog(); Ioc.getIoc().getLogger().i("接口请求异常:" + r.getContentAsString()); if (r.getKey() == 1) { pageUtil.isEndDownPage(); Toast.makeText(activity, ErrorMsgEnum.NET_ERROR.getName(), Toast.LENGTH_SHORT).show(); } } // private void getMsgTime(){ // String url=Url.SERVICE_SYSDATE_URL; // InternetConfig config=new InternetConfig(); // config.setKey(3); // config.setHead(CommonUtils.inHeaders()); // FastHttpHander.ajaxString(url, "", config, this); // } // @InjectHttpOk(value={3}) // public void getMsgTimeOK(ResponseEntity r){ // try { // Map<String, String> map = r.getHeaders(); // // 获取头部信息 // // String[] msgArray = map.get(HeaderConst.MYMHOTEL_MESSAGE).split("\\|"); // // 成功 返回OK // if ("OK".equals(map.get(HeaderConst.MYMHOTEL_STATUS))) { // // Toast.makeText(context, msgArray[1], Toast.LENGTH_SHORT).show(); // String time= (String) Handler_Json.getValue("sysDateTime", r.getContentAsString()); // MangrovePayApp.msgTime=time; // MangrovePayApp.app.setData("msgTime", time); // Ioc.getIoc().getLogger().i("-------------------------"); // Ioc.getIoc().getLogger().i("-------------系统时间:"+ MangrovePayApp.msgTime); // }// 失败 // } catch (Exception e) { // Ioc.getIoc().getLogger().i("-------------系统时间错误:"); // e.printStackTrace(); // } // } /** * *********************************************** @Title: initData @Description: TODO(组装数据) * * @param list * @param page 设定文件 * @return void 返回类型 * @throws * @date 2015-2-6 *********************************************** */ private void initData(ArrayList<HashMap<String, String>> list, String page) { pageUtil.isEndDownPage(); if (null != list && list.size() > 0) { HashMap<String, String> m = null; if ("1".equals(page)) { datalist.clear(); } ArrayList<HashMap<String, String>> datas = new ArrayList<HashMap<String, String>>(); for (HashMap<String, String> map : list) { m = new HashMap<String, String>(); m.put("tx_content_url", map.get("msgCntUrl")); m.put("tx_msg_title", map.get("msgTitle")); m.put("tx_msg_content", ""); m.put("tx_msg_time", DateUtil.formatDateToDay(map.get("msgTime"))); datalist.add(m); } datalist.addAll(datas); adapter.notifyDataSetChanged(); } } /** * *********************************************** @Title: setAdpater @Description: TODO(初始化 * listview 需要的 组件) 设定文件 * * @return void 返回类型 * @throws * @date 2015-2-5 *********************************************** */ private void setAdpater() { adapter = new MSGInfoAdapter(lv_list, datalist, R.layout.acitivity_msg_item); lv_list.setAdapter(adapter); } }
@Override public void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); eventBus.unregister(this); }