コード例 #1
0
 // private static final String[] Date = new String[]{"2015-11-6",
 // "2015-11-7", "2015-11-8", "2015-11-9"};
 // private static final String[] Time = new String[]{"09:00-11:00",
 // "11:00-13:00", "13:00-15:00", "15:00-17:00"};
 public BottomPopupWindow(
     final Context context,
     OnClickListener onClickListener,
     int resId,
     final Order order,
     int padding) {
   super(context);
   LayoutInflater inflater =
       (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
   mMenuView = inflater.inflate(resId, null);
   switch (resId) {
     case R.layout.change_delivery_time_popupwindow:
       okBtn = (TextView) mMenuView.findViewById(R.id.ok_btn);
       btn_cancel = (TextView) mMenuView.findViewById(R.id.btn_cancel);
       wheelView1 = (WheelView) mMenuView.findViewById(R.id.wheel_view_date);
       wheelView2 = (WheelView) mMenuView.findViewById(R.id.wheel_view_time);
       String expected_time = order.expected_time;
       String dataString = "";
       String hoursString = "";
       if (!expected_time.isEmpty()) {
         String str[] = expected_time.split(" ");
         dataString = str[0];
         hoursString = str[1];
       }
       int currentDate = 0;
       int currentHours = 0;
       for (int i = 0; i < order.delivery_time_list.dates.size(); i++) {
         if (order.delivery_time_list.dates.get(i).equals(dataString)) {
           currentDate = i;
           break;
         }
       }
       for (int i = 0; i < order.delivery_time_list.hours.size(); i++) {
         if (order.delivery_time_list.hours.get(i).equals(hoursString)) {
           currentHours = i;
           break;
         }
       }
       wheelView1.setOffset(1);
       wheelView1.setItems(order.delivery_time_list.dates);
       wheelView1.setSeletion(currentDate);
       date = order.delivery_time_list.dates.get(currentDate);
       hours = order.delivery_time_list.hours.get(currentHours);
       wheelView1.setOnWheelViewListener(
           new WheelView.OnWheelViewListener() {
             @Override
             public void onSelected(int selectedIndex, String item) {
               date = item;
             }
           });
       wheelView2.setOffset(1);
       wheelView2.setItems(order.delivery_time_list.hours);
       wheelView2.setSeletion(currentHours);
       wheelView2.setOnWheelViewListener(
           new WheelView.OnWheelViewListener() {
             @Override
             public void onSelected(int selectedIndex, String item) {
               hours = item;
             }
           });
       okBtn.setOnClickListener(onClickListener);
       btn_cancel.setOnClickListener(
           new OnClickListener() {
             public void onClick(View v) {
               // 销毁弹出框
               dismiss();
             }
           });
       break;
     case R.layout.contact_carrier_popupwindow:
       callBtn = (TextView) mMenuView.findViewById(R.id.call_btn);
       messgeBtn = (TextView) mMenuView.findViewById(R.id.messge_btn);
       tv_name = (TextView) mMenuView.findViewById(R.id.tv_name);
       tv_phone_num = (TextView) mMenuView.findViewById(R.id.tv_phone_num);
       headImg = (ImageView) mMenuView.findViewById(R.id.img_head);
       tv_name.setText(order.carrier_name);
       tv_phone_num.setText(order.carrier_phone_number);
       loadImage(order.portrait);
       callBtn.setOnClickListener(onClickListener);
       messgeBtn.setOnClickListener(onClickListener);
       break;
     case R.layout.select_pic_popupwindow:
     case R.layout.select_exit_popupwindow:
       btn_first = (TextView) mMenuView.findViewById(R.id.btn_first);
       btn_second = (TextView) mMenuView.findViewById(R.id.btn_second);
       btn_cancel = (TextView) mMenuView.findViewById(R.id.btn_cancel);
       // // 取消按钮
       btn_cancel.setOnClickListener(
           new OnClickListener() {
             public void onClick(View v) {
               // 销毁弹出框
               dismiss();
             }
           });
       // 设置按钮监听
       btn_first.setOnClickListener(onClickListener);
       btn_second.setOnClickListener(onClickListener);
       btn_cancel.setOnClickListener(onClickListener);
       break;
   }
   mMenuView.setPadding(padding, 0, padding, 0);
   this.setContentView(mMenuView);
   this.setWidth(LayoutParams.MATCH_PARENT);
   // 设置SelectPicPopupWindow弹出窗体的高
   this.setHeight(LayoutParams.WRAP_CONTENT);
   // 设置SelectPicPopupWindow弹出窗体可点击
   this.setFocusable(true);
   // 设置SelectPicPopupWindow弹出窗体动画效果
   this.setAnimationStyle(R.style.AnimBottom);
   // 实例化一个ColorDrawable颜色为透明
   ColorDrawable dw = new ColorDrawable(0x0000000);
   // 设置SelectPicPopupWindow弹出窗体的背景
   this.setBackgroundDrawable(dw);
   // mMenuView添加OnTouchListener监听判断获取触屏位置如果在选择框外面则销毁弹出框
   mMenuView.setOnTouchListener(
       new OnTouchListener() {
         @SuppressLint("ClickableViewAccessibility")
         public boolean onTouch(View v, MotionEvent event) {
           int height = mMenuView.findViewById(R.id.pop_layout).getTop();
           int y = (int) event.getY();
           if (event.getAction() == MotionEvent.ACTION_UP) {
             if (y < height) {
               dismiss();
             }
           }
           return true;
         }
       });
 }