Carbs0126/GregorianLunarCalendar

refreshByNewDisplayedValues()的问题

Closed this issue · 10 comments

你好,我用了你的控件,来做省市地区三级联动,
滑动省,更新市区和省用的refreshByNewDisplayedValues(),
滑动市,更新省也是这个方法.
但是会报错:minShowIndex should be less than maxShowIndex,minShowIndex is 0,maxShowIndex is -1
请问要怎么解决啊

稍等,我正在看

需要我给你代码吗,我单独提取出来,发到你邮箱

@Override public void onValueChange(NumberPickerView picker, int oldVal, final int newVal) { switch (picker.getId()){ case R.id.npv_dialog_editinfo_province: provinceIndex=newVal; //获取选中的省 ProvinceModel.Province province = mProvinceModel.getmProvinces().get(provinceIndex); //根据省获取所有的市区,并设置 npv_dialog_editinfo_city.refreshByNewDisplayedValues(mProvinceModel.getCityNames(province)); //获取第一个市区的所有省,并设置 npv_dialog_editinfo_district.refreshByNewDisplayedValues(mProvinceModel.getDistrictNames(mProvinceModel.getmProvinces().get(provinceIndex).getCitys().get(0))); break; case R.id.npv_dialog_editinfo_city: cityIndex=newVal; //获取具体某个省的某个个市区 ProvinceModel.Province.City city = mProvinceModel.getmProvinces().get(provinceIndex).getCitys().get(cityIndex); //根据市区设置所有的县 npv_dialog_editinfo_district.refreshByNewDisplayedValues(mProvinceModel.getDistrictNames(city)); break; case R.id.npv_dialog_editinfo_district: break; }

你好,代码发到你的邮箱了!

解决了,我自己的问题,多谢!

我用您写的日历选择器的时候遇到一个问题 我是在PopupWindow中使用的 第一次使用正常 调用dismiss() 然后在调用show()时候 显示正常 当滑动的时候就错位了
f dsi k5_n t45p q8og79

嗯,稍等,我正在看。此问题是必现的吗?

我看了一下问题,原因是在onDetach时,将HandlerThread quit()掉了,再次进入dialog或者popupwindow时,不会重新初始化HandlerThread,因此造成了不刷新。这不是GregorianLunarCalendar的问题,而是它的组件NumberPickerView的问题,您只要把依赖NumerPickerView的版本改成1.0.5就可以了,或者直接拷贝NumberPickerView最新的代码即可

不客气,感谢支持!