標籤:custom events 類型 sync length getview 開始 async war
android listview 適配器在多種類型viewType報錯:
Caused by: java.lang.ArrayIndexOutOfBoundsException: length=3; index=32 at android.widget.AbsListView$RecycleBin.addScrapView(AbsListView.java:6822)3 at android.widget.AbsListView.trackMotionScroll(AbsListView.java:5179)4 at android.widget.AbsListView.scrollIfNeeded(AbsListView.java:3558)5 at android.widget.AbsListView.onTouchMove(AbsListView.java:3969)6 at android.widget.AbsListView.onTouchEvent(AbsListView.java:3783)7 at android.widget.ListView.onTouchEvent(ListView.java:4219)8 at android.view.View.dispatchTouchEvent(View.java:8556)9 at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2403)10 at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2096)11 at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2409)12 at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2110)13 at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2409)14 at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2110)15 at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2409)16 at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2110)17 at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2409)18 at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2110)19 at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2409)20 at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2110)21 at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2409)22 at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2110)23 at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2409)24 at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2110)25 at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2455)26 at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1756)27 at android.app.Activity.dispatchTouchEvent(Activity.java:2780)28 at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2412)29 at android.view.View.dispatchPointerEvent(View.java:8751)30 at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4200)31 at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4066)32 at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3606)33 at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3659)34 at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3625)35 at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3742)36 at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3633)37 at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3799)38 at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3606)39 at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3659)40 at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3625)41 at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3633)42 at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3606)43 at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:5901)44 at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:5875)45 at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:5846)46 at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:6012)47 at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:185)48 at android.view.InputEventReceiver.nativeConsumeBatchedInputEvents(Native Method)49 at android.view.InputEventReceiver.consumeBatchedInputEvents(InputEventReceiver.java:176)50 at android.view.ViewRootImpl.doConsumeBatchedInput(ViewRootImpl.java:5962)51 at android.view.ViewRootImpl$ConsumeBatchedInputRunnable.run(ViewRootImpl.java:6035)
解決方案:http://stackoverflow.com/questions/2596547/arrayindexoutofboundsexception-with-custom-android-adapter-for-multiple-views-in
The item view type you are returning from
getItemViewType() is >= getViewTypeCount().
也就是你的viewType的type類型必須從0開始,{0,1,2,3...}這樣的.
typecount大於最後一個類型的type即可.
這樣就解決了,ListView多種viewType滑動到底,上滑崩潰的現象.
android listview Caused by: java.lang.ArrayIndexOutOfBoundsException: length=3; index=3