数组越界 —— 解决方法


java.lang.ArrayIndexOutOfBoundsException: length=3; index=3 at android.widget.AbsListView$RecycleBin.addScrapView(AbsListView.java:6588) at android.widget.AbsListView.trackMotionScroll(AbsListView.java:4941) at android.widget.AbsListView$FlingRunnable.run(AbsListView.java:4539) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767) at android.view.Choreographer.doCallbacks(Choreographer.java:580) at android.view.Choreographer.doFrame(Choreographer.java:549) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:135)at android.app.ActivityThread.main(ActivityThread.java:5254) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)


  近日,在项目过程中,突然出现一个Bug,上面就是错误的提示信息,没有定位到哪一行,从信息中能够看出是ListView的问题。 于是就想是不是
刷新界面的时候,没有清空数据,于是清空数据后还是不行。纠结了很久,最后发现是getItemViewType的问题,因为这里的ListView要显示三种布局,所以
getViewTypeCount设置为3,但是getItemViewType返回的数要从0开始,因为如果从1开始的话,返回就分别为1,2,3,就会出现上面的问题。
原文地址:https://www.cnblogs.com/tyzl/p/6105241.html