Android 具有多个布局的ListView在滚动时崩溃

Android 具有多个布局的ListView在滚动时崩溃,android,android-layout,adapter,Android,Android Layout,Adapter,我有一个自定义的适配器来显示一系列无聊的事情。现在,我想添加最后一项和摘要(Resumen) 我使用了两个布局和两个视窗,它有点工作 当我滚动回第一项时,问题开始出现。当“Resumen”项消失(最后一个)时,活动崩溃 让我向您展示适配器代码(相关行) 最后,崩溃日志: FATAL EXCEPTION: main java.lang.ArrayIndexOutOfBoundsException at android.widget.AbsListView$RecycleBin.addSc

我有一个自定义的适配器来显示一系列无聊的事情。现在,我想添加最后一项和摘要(Resumen)

我使用了两个布局和两个视窗,它有点工作

当我滚动回第一项时,问题开始出现。当“Resumen”项消失(最后一个)时,活动崩溃

让我向您展示适配器代码(相关行)

最后,崩溃日志:

FATAL EXCEPTION: main
java.lang.ArrayIndexOutOfBoundsException
    at android.widget.AbsListView$RecycleBin.addScrapView(AbsListView.java:4078)
    at android.widget.AbsListView.trackMotionScroll(AbsListView.java:2915)
    at android.widget.AbsListView.onTouchEvent(AbsListView.java:2065)
    at android.widget.ListView.onTouchEvent(ListView.java:3315)
    at android.view.View.dispatchTouchEvent(View.java:3766)
    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:897)
    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:936)
    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:936)
    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:936)
    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:936)
    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:936)
    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:936)
    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:936)
    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:936)
    at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1701)
    at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1111)
    at android.app.Activity.dispatchTouchEvent(Activity.java:2086)
    at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1685)
    at android.view.ViewRoot.handleMessage(ViewRoot.java:1785)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:123)
    at android.app.ActivityThread.main(ActivityThread.java:4635)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:521)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:916)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:674)
    at dalvik.system.NativeStart.main(Native Method)
如果这段代码根本不起作用,但只有在摘要视图消失时才会崩溃,我会怀疑这是显而易见的。。。我无法检测到失败

谢谢

我改变了适配器和布局。每个布局仅由一个纯文本视图组成。当我滚动listView时,应用程序崩溃

这很奇怪


更多信息:我正在使用API级别8和兼容包。“活动”是一个片段活动,我正在ViewPager中使用listView。

我想数组的长度和数组中的项数可能有问题。。这就是问题的根源

这并不是你为什么会崩溃的答案,但听起来你真正想要的是一个页脚。看见这样,您就可以摆脱开关和类别代码。请记住,在调用
setAdapter()
之前,必须调用
addFooterView()
。。。但问题在于:

final private int VIEW_TYPES = 2;
final private int TIPO_FACTURA = 1;
final private int TIPO_RESUMEN = 2;
我把它改成:

final private int VIEW_TYPES = 2;
final private int TIPO_FACTURA = 0;
final private int TIPO_RESUMEN = 1;
现在它工作了


我个人认为这毫无意义。。。为什么视图类型应该从零开始?

通常它会在崩溃日志中提供更多信息,包括导致问题的代码行,您可以发布整个错误日志吗?好的。。。我正在添加整个错误日志(红线),仍然看不到对代码的任何引用,几乎总是有一个,可能更多一点红色logcat?您可能试图回收错误类型的视图。让我尝试使用适配器而不回收。。。等一下。。。
final private int VIEW_TYPES = 2;
final private int TIPO_FACTURA = 0;
final private int TIPO_RESUMEN = 1;