【发布时间】:2014-11-24 14:47:45
【问题描述】:
当我设置页脚视图时,我在ListView 中遇到了一些奇怪的问题。我正在添加页脚链接以在到达ListView 中的末尾元素时加载更多内容,并在加载时将其删除。 而ListView 以CursorAdapter 为后盾。
在 Kitkat 之前它运行良好,没有任何问题,但是当我在加载更多元素时更改片段时,随着 android L 更新,它崩溃并出现以下跟踪:
11-15 17:20:19.532: E/AndroidRuntime(11784): java.lang.IndexOutOfBoundsException: Invalid index 1, size is 1
11-15 17:20:19.532: E/AndroidRuntime(11784): at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255)
11-15 17:20:19.532: E/AndroidRuntime(11784): at java.util.ArrayList.get(ArrayList.java:308)
11-15 17:20:19.532: E/AndroidRuntime(11784): at android.widget.HeaderViewListAdapter.isEnabled(HeaderViewListAdapter.java:164)
11-15 17:20:19.532: E/AndroidRuntime(11784): at android.widget.ListView.dispatchDraw(ListView.java:3307)
11-15 17:20:19.532: E/AndroidRuntime(11784): at android.view.View.draw(View.java:15117)
11-15 17:20:19.532: E/AndroidRuntime(11784): at android.widget.AbsListView.draw(AbsListView.java:4083)
11-15 17:20:19.532: E/AndroidRuntime(11784): at android.view.View.updateDisplayListIfDirty(View.java:14048)
11-15 17:20:19.532: E/AndroidRuntime(11784): at android.view.View.getDisplayList(View.java:14071)
11-15 17:20:19.532: E/AndroidRuntime(11784): at android.view.View.draw(View.java:14838)
11-15 17:20:19.532: E/AndroidRuntime(11784): at android.view.ViewGroup.drawChild(ViewGroup.java:3404)
11-15 17:20:19.532: E/AndroidRuntime(11784): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3198)
11-15 17:20:19.532: E/AndroidRuntime(11784): at android.view.View.updateDisplayListIfDirty(View.java:14043)
11-15 17:20:19.532: E/AndroidRuntime(11784): at android.view.View.getDisplayList(View.java:14071)
11-15 17:20:19.532: E/AndroidRuntime(11784): at android.view.View.draw(View.java:14838)
11-15 17:20:19.532: E/AndroidRuntime(11784): at android.view.ViewGroup.drawChild(ViewGroup.java:3404)
11-15 17:20:19.532: E/AndroidRuntime(11784): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3198)
11-15 17:20:19.532: E/AndroidRuntime(11784): at android.view.View.draw(View.java:15117)
11-15 17:20:19.532: E/AndroidRuntime(11784): at android.view.View.updateDisplayListIfDirty(View.java:14048)
11-15 17:20:19.532: E/AndroidRuntime(11784): at android.view.View.getDisplayList(View.java:14071)
11-15 17:20:19.532: E/AndroidRuntime(11784): at android.view.View.draw(View.java:14838)
11-15 17:20:19.532: E/AndroidRuntime(11784): at android.view.ViewGroup.drawChild(ViewGroup.java:3404)
11-15 17:20:19.532: E/AndroidRuntime(11784): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3198)
11-15 17:20:19.532: E/AndroidRuntime(11784): at android.view.View.updateDisplayListIfDirty(View.java:14043)
11-15 17:20:19.532: E/AndroidRuntime(11784): at android.view.View.getDisplayList(View.java:14071)
11-15 17:20:19.532: E/AndroidRuntime(11784): at android.view.View.draw(View.java:14838)
11-15 17:20:19.532: E/AndroidRuntime(11784): at android.view.ViewGroup.drawChild(ViewGroup.java:3404)
11-15 17:20:19.532: E/AndroidRuntime(11784): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3198)
11-15 17:20:19.532: E/AndroidRuntime(11784): at android.view.View.updateDisplayListIfDirty(View.java:14043)
11-15 17:20:19.532: E/AndroidRuntime(11784): at android.view.View.getDisplayList(View.java:14071)
11-15 17:20:19.532: E/AndroidRuntime(11784): at android.view.View.draw(View.java:14838)
11-15 17:20:19.532: E/AndroidRuntime(11784): at android.view.ViewGroup.drawChild(ViewGroup.java:3404)
11-15 17:20:19.532: E/AndroidRuntime(11784): at android.support.v4.widget.DrawerLayout.drawChild(DrawerLayout.java:1057)
11-15 17:20:19.532: E/AndroidRuntime(11784): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3198)
11-15 17:20:19.532: E/AndroidRuntime(11784): at android.view.View.draw(View.java:15117)
11-15 17:20:19.532: E/AndroidRuntime(11784): at android.view.View.updateDisplayListIfDirty(View.java:14048)
11-15 17:20:19.532: E/AndroidRuntime(11784): at android.view.View.getDisplayList(View.java:14071)
11-15 17:20:19.532: E/AndroidRuntime(11784): at android.view.View.draw(View.java:14838)
11-15 17:20:19.532: E/AndroidRuntime(11784): at android.view.ViewGroup.drawChild(ViewGroup.java:3404)
11-15 17:20:19.532: E/AndroidRuntime(11784): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3198)
11-15 17:20:19.532: E/AndroidRuntime(11784): at android.view.View.updateDisplayListIfDirty(View.java:14043)
11-15 17:20:19.532: E/AndroidRuntime(11784): at android.view.View.getDisplayList(View.java:14071)
11-15 17:20:19.532: E/AndroidRuntime(11784): at android.view.View.draw(View.java:14838)
11-15 17:20:19.532: E/AndroidRuntime(11784): at android.view.ViewGroup.drawChild(ViewGroup.java:3404)
11-15 17:20:19.532: E/AndroidRuntime(11784): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3210)
11-15 17:20:19.532: E/AndroidRuntime(11784): at android.view.View.updateDisplayListIfDirty(View.java:14043)
11-15 17:20:19.532: E/AndroidRuntime(11784): at android.view.View.getDisplayList(View.java:14071)
11-15 17:20:19.532: E/AndroidRuntime(11784): at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3388)
11-15 17:20:19.532: E/AndroidRuntime(11784): at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3367)
11-15 17:20:19.532: E/AndroidRuntime(11784): at android.view.View.updateDisplayListIfDirty(View.java:14008)
11-15 17:20:19.532: E/AndroidRuntime(11784): at android.view.View.getDisplayList(View.java:14071)
11-15 17:20:19.532: E/AndroidRuntime(11784): at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3388)
11-15 17:20:19.532: E/AndroidRuntime(11784): at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3367)
11-15 17:20:19.532: E/AndroidRuntime(11784): at android.view.View.updateDisplayListIfDirty(View.java:14008)
11-15 17:20:19.532: E/AndroidRuntime(11784): at android.view.View.getDisplayList(View.java:14071)
11-15 17:20:19.532: E/AndroidRuntime(11784): at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3388)
11-15 17:20:19.532: E/AndroidRuntime(11784): at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3367)
11-15 17:20:19.532: E/AndroidRuntime(11784): at android.view.View.updateDisplayListIfDirty(View.java:14008)
11-15 17:20:19.532: E/AndroidRuntime(11784): at android.view.View.getDisplayList(View.java:14071)
11-15 17:20:19.532: E/AndroidRuntime(11784): at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3388)
11-15 17:20:19.532: E/AndroidRuntime(11784): at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3367)
11-15 17:20:19.532: E/AndroidRuntime(11784): at android.view.View.updateDisplayListIfDirty(View.java:14008)
11-15 17:20:19.532: E/AndroidRuntime(11784): at android.view.View.getDisplayList(View.java:14071)
11-15 17:20:19.532: E/AndroidRuntime(11784): at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3388)
11-15 17:20:19.532: E/AndroidRuntime(11784): at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3367)
当我删除页脚时,它工作正常。我正在使用AsyncTask 加载更多内容并将值插入表中,并使用notifyChange 通知更改。
我不知道我做错了什么。如果有人告诉我这个问题会很好。
【问题讨论】:
-
显示错误所在的代码
-
你使用游标加载器吗?
-
是的,我正在使用 CursorLoader。错误不在我的代码中。但我不知道究竟是哪个导致了我的问题。
标签: android listview android-listview