public void setArea(int provinceId, int cityId) {

    Log.i("setArea", "provinceId=" + provinceId + "   cityId=" + cityId);
    int length = citytoarea[provinceId].length;

    Log.i("setArea", "citytoarea[provinceId].length=" + length);

    areaWheelView.setAdapter(
        new ArrayWheelAdapter<String>(
            getResources().getStringArray(citytoarea[provinceId][cityId])));
    areaWheelView.setVisibleItems(5);
    areaWheelView.setCurrentItem(0);
  }
  /**
   * Adds view to cache. Determines view type (item view or empty one) by index.
   *
   * @param view the view to be cached
   * @param index the index of view
   */
  private void recycleView(View view, int index) {
    int count = wheel.getViewAdapter().getItemsCount();

    if ((index < 0 || index >= count) && !wheel.isCyclic()) {
      // empty view
      emptyItems = addView(view, emptyItems);
    } else {
      while (index < 0) {
        index = count + index;
      }
      index %= count;
      items = addView(view, items);
    }
  }
 public void setCity(int provinceId) {
   cityWheelView.setAdapter(
       new ArrayWheelAdapter<String>(getResources().getStringArray(city[provinceId])));
   cityWheelView.setVisibleItems(5);
   cityWheelView.setCurrentItem(0);
 }
  private void initiWheelView() {

    province = getResources().getStringArray(R.array.province);

    areaWheelView.setAdapter(
        new ArrayWheelAdapter<String>(getResources().getStringArray(citytoarea[18][2])));
    areaWheelView.setVisibleItems(5);
    areaWheelView.setCurrentItem(0);

    cityWheelView.setAdapter(
        new ArrayWheelAdapter<String>(getResources().getStringArray(city[18])));
    cityWheelView.setVisibleItems(5);
    cityWheelView.setCurrentItem(2);

    provinceWheelView.setAdapter(new ArrayWheelAdapter<String>(province));
    provinceWheelView.setVisibleItems(5);
    provinceWheelView.setCurrentItem(18);
    OnWheelChangedListener wheelListener =
        new OnWheelChangedListener() {
          @Override
          public void onChanged(WheelView wheel, int oldValue, int newValue) {
            System.out.println("wheel-->" + wheel.getId());
            System.out.println("oldValue-->" + oldValue);
            System.out.println("newValue-->" + newValue);
          }
        };
    provinceWheelView.addChangingListener(wheelListener);
    cityWheelView.addChangingListener(wheelListener);
    OnWheelScrollListener scrollListener =
        new OnWheelScrollListener() {

          @Override
          public void onScrollingStarted(WheelView wheel) {
            // TODO Auto-generated method stub

          }

          @Override
          public void onScrollingFinished(WheelView wheel) {
            System.out.println("wheel-->" + wheel.getId());
            System.out.println("wheel-->" + wheel.getCurrentItem());
            switch (wheel.getId()) {
              case 2131099651:
                setCity(wheel.getCurrentItem());
                provinceId = wheel.getCurrentItem();
                setArea(provinceId, 0);
                break;
              case 2131099652:
                setArea(provinceId, wheel.getCurrentItem());
                break;
            }
          }
        };
    provinceWheelView.addScrollingListener(scrollListener);
    cityWheelView.addScrollingListener(scrollListener);
  }
 // 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;
         }
       });
 }
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.dialog_myinfo_changeaddress);

    wvProvince = (WheelView) findViewById(R.id.wv_address_province);
    wvCitys = (WheelView) findViewById(R.id.wv_address_city);
    lyChangeAddress = findViewById(R.id.ly_myinfo_changeaddress);
    lyChangeAddressChild = findViewById(R.id.ly_myinfo_changeaddress_child);
    btnSure = (TextView) findViewById(R.id.btn_myinfo_sure);
    btnCancel = (TextView) findViewById(R.id.btn_myinfo_cancel);

    lyChangeAddress.setOnClickListener(this);
    lyChangeAddressChild.setOnClickListener(this);
    btnSure.setOnClickListener(this);
    btnCancel.setOnClickListener(this);

    initJsonData();
    initDatas();
    initProvinces();
    provinceAdapter =
        new AddressTextAdapter(
            context, arrProvinces, getProvinceItem(strProvince), maxsize, minsize);
    wvProvince.setVisibleItems(5);
    wvProvince.setViewAdapter(provinceAdapter);
    wvProvince.setCurrentItem(getProvinceItem(strProvince));

    initCitys(mCitisDatasMap.get(strProvince));
    cityAdapter = new AddressTextAdapter(context, arrCitys, getCityItem(strCity), maxsize, minsize);
    wvCitys.setVisibleItems(5);
    wvCitys.setViewAdapter(cityAdapter);
    wvCitys.setCurrentItem(getCityItem(strCity));

    wvProvince.addChangingListener(
        new OnWheelChangedListener() {

          @Override
          public void onChanged(WheelView wheel, int oldValue, int newValue) {
            // TODO Auto-generated method stub
            String currentText = (String) provinceAdapter.getItemText(wheel.getCurrentItem());
            strProvince = currentText;
            setTextviewSize(currentText, provinceAdapter);
            String[] citys = mCitisDatasMap.get(currentText);
            initCitys(citys);
            cityAdapter = new AddressTextAdapter(context, arrCitys, 0, maxsize, minsize);
            wvCitys.setVisibleItems(5);
            wvCitys.setViewAdapter(cityAdapter);
            wvCitys.setCurrentItem(0);
          }
        });

    wvProvince.addScrollingListener(
        new OnWheelScrollListener() {

          @Override
          public void onScrollingStarted(WheelView wheel) {
            // TODO Auto-generated method stub

          }

          @Override
          public void onScrollingFinished(WheelView wheel) {
            // TODO Auto-generated method stub
            String currentText = (String) provinceAdapter.getItemText(wheel.getCurrentItem());
            setTextviewSize(currentText, provinceAdapter);
          }
        });

    wvCitys.addChangingListener(
        new OnWheelChangedListener() {

          @Override
          public void onChanged(WheelView wheel, int oldValue, int newValue) {
            // TODO Auto-generated method stub
            String currentText = (String) cityAdapter.getItemText(wheel.getCurrentItem());
            strCity = currentText;
            setTextviewSize(currentText, cityAdapter);
          }
        });

    wvCitys.addScrollingListener(
        new OnWheelScrollListener() {

          @Override
          public void onScrollingStarted(WheelView wheel) {
            // TODO Auto-generated method stub

          }

          @Override
          public void onScrollingFinished(WheelView wheel) {
            // TODO Auto-generated method stub
            String currentText = (String) cityAdapter.getItemText(wheel.getCurrentItem());
            setTextviewSize(currentText, cityAdapter);
          }
        });
  }