之前在项目中有地方要用到省市县的选择,就使用了开源的Cascade_Master,很好用的一个控件,在这里谢谢作者的分享。
但是在使用的时候发现有一点小小的问题,就是当滚动省和市后,而不去滚动区,那么视觉上虽然区的滚轮也相应改变,但是最终获取到的区却是之前一次滚动后的值,而并不是于省市对应的区。查看源代码后发现,作者在控件的onChanged事件中是这样写的:
这样就导致在只滚动省和市,而不去滚动区时,虽然每次省和市的值都得到了更新,但是对应的区的值mCurrentDistrictName却没有得到更新,所以区还停留在上一次的值,如果一直不滚动区,这个值就一直不变。
所以我的做法是:
在滚动省市后都对mCurrentDistrictName进行重新赋值,将其赋为相对应省市的区的第一个值,这样即时每次不去滚动区,区的值也会是与省市对应的区,不会出现区与省市不对应的情况。
小弟不才,这也许不是最好的解决方法,但也算是对代码的一次探索和展开的个人理解,对自己的收获还是蛮大的