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); } }); }