Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

无法正确的获取省市县三级默认的数据 #89

Closed
CMzhizhe opened this issue Feb 13, 2017 · 7 comments
Closed

无法正确的获取省市县三级默认的数据 #89

CMzhizhe opened this issue Feb 13, 2017 · 7 comments

Comments

@CMzhizhe
Copy link

我默认调用的地址是 "广东省", "广州市", "天河区",当我点击控件,弹出的第一个是 北京市 广州市 荔湾区,不是我默认选择的地址,出现这样的BUG 次数比较多,比如你点击5次,有可能4次会出现无法正确的获取信息,我用的是魅族3手机5.0的Android,我还并未在其他手机上发现出现这样的类似的事的情况

当出现我描述的BUG的时候(北京市 广州市 荔湾),我点击确定 获取到的数据是北京市 北京市 东城区

@CMzhizhe
Copy link
Author

我加入的版本是最新的版本
compile 'cn.qqtheme.framework:WheelPicker:latest.release'

@CMzhizhe
Copy link
Author

当我滚动 市级的时候会崩溃:
java.lang.IndexOutOfBoundsException: Invalid index 1, size is 1
at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255)
at java.util.ArrayList.get(ArrayList.java:308)
at cn.qqtheme.framework.picker.AddressPicker$AddressProvider.provideThirdData(AddressPicker.java:298)
at cn.qqtheme.framework.picker.AddressPicker$2.onSelected(AddressPicker.java:203)
at cn.qqtheme.framework.widget.WheelView.onSelectedCallback(WheelView.java:311)
at cn.qqtheme.framework.widget.WheelView.refreshCurrentPosition(WheelView.java:353)
at cn.qqtheme.framework.widget.WheelView.onScroll(WheelView.java:450)
at android.widget.AbsListView.invokeOnItemScrollListener(AbsListView.java:1585)
at android.widget.AbsListView.trackMotionScroll(AbsListView.java:5264)
at android.widget.AbsListView.scrollIfNeeded(AbsListView.java:3583)
at android.widget.AbsListView.onTouchMove(AbsListView.java:3974)
at android.widget.AbsListView.onTouchEvent(AbsListView.java:3810)
at android.widget.ListView.onTouchEvent(ListView.java:4393)
at android.view.View.dispatchTouchEvent(View.java:8461)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2428)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2162)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2434)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2176)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2434)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2176)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2434)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2176)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2434)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2176)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2434)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2176)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2434)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2176)
at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2346)
at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1701)
at android.app.Dialog.dispatchTouchEvent(Dialog.java:787)
at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2303)
at android.view.View.dispatchPointerEvent(View.java:8651)
at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4192)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4058)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3605)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3658)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3624)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3734)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3632)
at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3791)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3605)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3658)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3624)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3632)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3605)
at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:5885)
at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:5859)
at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:5830)
at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:5983)
at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:185)
at android.view.InputEventReceiver.nativeConsumeBatchedInputEvents(Native Method)
at android.view.InputEventRece
02-13 13:21:48.624 4736-4736/com.gisegnm.mobile.wyg.customer E/BAFCrashHandler: java.lang.IndexOutOfBoundsException: Invalid index 1, size is 1
at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255)
at java.util.ArrayList.get(ArrayList.java:308)
at cn.qqtheme.framework.picker.AddressPicker$AddressProvider.provideThirdData(AddressPicker.java:298)
at cn.qqtheme.framework.picker.AddressPicker$2.onSelected(AddressPicker.java:203)
at cn.qqtheme.framework.widget.WheelView.onSelectedCallback(WheelView.java:311)
at cn.qqtheme.framework.widget.WheelView.refreshCurrentPosition(WheelView.java:353)
at cn.qqtheme.framework.widget.WheelView.onScroll(WheelView.java:450)
at android.widget.AbsListView.invokeOnItemScrollListener(AbsListView.java:1585)
at android.widget.AbsListView.trackMotionScroll(AbsListView.java:5264)
at android.widget.AbsListView.scrollIfNeeded(AbsListView.java:3583)
at android.widget.AbsListView.onTouchMove(AbsListView.java:3974)
at android.widget.AbsListView.onTouchEvent(AbsListView.java:3810)
at android.widget.ListView.onTouchEvent(ListView.java:4393)
at android.view.View.dispatchTouchEvent(View.java:8461)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2428)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2162)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2434)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2176)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2434)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2176)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2434)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2176)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2434)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2176)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2434)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2176)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2434)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2176)
at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2346)
at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1701)
at android.app.Dialog.dispatchTouchEvent(Dialog.java:787)
at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2303)
at android.view.View.dispatchPointerEvent(View.java:8651)
at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4192)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4058)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3605)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3658)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3624)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3734)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3632)
at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3791)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3605)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3658)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3624)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3632)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3605)
at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:5885)
at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:5859)
at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:5830)
at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:5983)
at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:185)
at android.view.InputEventReceiver.nativeConsumeBatchedInputEvents(Native Method)
at android.view.InputEventReceiver.consumeBatchedInputE

@CMzhizhe
Copy link
Author

当你滚动第一个 省 级别 市和县 会跟着滚动,然后就恢复正常

@CMzhizhe
Copy link
Author

在这步里面出现了数据变动,本来我选择的广东省是18的position,进入 getCurrentPosition() 方法后都变成 position=0 了,不知道我找的是否正确
private void onSelectedCallback() {
int index = getSelectedIndex();
String item = getSelectedItem();
LogUtils.verbose("isUserScroll=" + isUserScroll + ", index=" + index + ", item=" + item);
if (null != onWheelListener) {
onWheelListener.onSelected(isUserScroll, index, item);
}
}

/**
* 获取当前滚轮位置
*/
public int getCurrentPosition() {
if (currentPosition == -1) {
return 0;
}
return currentPosition;
}

@joeye333
Copy link

我也遇到这个问题了。。。。。。。。。。。。作者好像无视了

@hcw2175
Copy link

hcw2175 commented Apr 27, 2017

+1

@liyujiang-gzu
Copy link
Member

@yeweicong @hcw2175 @Caocao123 1.5.X版本已经不存在此问题了

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants