Bigkoo / Bigkoo/Android-PickerView
省市区三级联动,同时滑动省和市两个view 方向相反,反复滑动个7、8次,则会出现数组越界ArrayIndexOutOfBoundsException
- Dominant language
- Java
- Stars
- 13.4k
- Forks
- 3.4k
- PR merge metrics
- No merged PRs in 30d
Description
05-16 11:46:49.095 7111-7111/com.ontheroadstore.hs E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.ontheroadstore.hs, PID: 7111
java.lang.ArrayIndexOutOfBoundsException: length=0; index=-1
at java.util.ArrayList.get(ArrayList.java:413)
at com.bigkoo.pickerview.view.WheelOptions$2.onItemSelected(WheelOptions.java:136)
at com.bigkoo.pickerview.view.WheelOptions$1.onItemSelected(WheelOptions.java:114)
at com.contrarywind.view.WheelView$1.run(WheelView.java:344)
at android.os.Handler.handleCallback(Handler.java:754)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:160)
at android.app.ActivityThread.main(ActivityThread.java:6252)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:895)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:785)
wheelListener_option2 = new OnItemSelectedListener() {
@Override
public void onItemSelected(int index) {
if (mOptions3Items != null) {
int opt1Select = wv_option1.getCurrentItem();
opt1Select = opt1Select >= mOptions3Items.size() - 1 ? mOptions3Items.size() - 1 : opt1Select;
index = index >= mOptions2Items.get(opt1Select).size() - 1 ? mOptions2Items.get(opt1Select).size() - 1 : index;
int opt3 = 0;
if (!isRestoreItem) {
// wv_option3.getCurrentItem() 上一个opt3的选中位置
//新opt3的位置,判断如果旧位置没有超过数据范围,则沿用旧位置,否则选中最后一项
opt3 = wv_option3.getCurrentItem() >= mOptions3Items.get(opt1Select).get(index).size() - 1 ?
mOptions3Items.get(opt1Select).get(index).size() - 1 : wv_option3.getCurrentItem();
}
wv_option3.setAdapter(new ArrayWheelAdapter(mOptions3Items.get(wv_option1.getCurrentItem()).get(index)));
wv_option3.setCurrentItem(opt3);
//3级联动数据实时回调
if (optionsSelectChangeListener != null) {
optionsSelectChangeListener.onOptionsSelectChanged(wv_option1.getCurrentItem(), index, opt3);
}
} else {//只有2级联动数据,滑动第2项回调
if (optionsSelectChangeListener != null) {
optionsSelectChangeListener.onOptionsSelectChanged(wv_option1.getCurrentItem(), index, 0);
}
}
}
};
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.