2014-11-24 33 views
3

當我設置頁腳視圖時,我在ListView中遇到了一些奇怪的問題。我在添加頁腳鏈接來加載ListView中的最後一個元素,並在加載時刪除它。 ListView備有CursorAdapterListView中的java.lang.IndexOutOfBoundsException android

它沒有任何問題,直到奇巧運作良好,但與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通知更改。

我不知道我做錯了什麼。如果有人告訴我這個問題,這將是很好的。

+0

顯示你的代碼錯誤是 – tyczj 2014-11-24 14:51:39

+0

你使用遊標加載器嗎? – njzk2 2014-11-24 14:53:09

+0

是的,我正在使用CursorLoader。該錯誤不在我的代碼中..但我不知道究竟是哪個問題導致我的問題。 – Boopathy 2014-11-24 15:20:41

回答

4

我有完全相同的問題/相同的堆棧跟蹤。在我的情況下,我使用支持v4庫碎片和使用setCustomAnimations在添加片段。當我沒有設置popExit動畫時,問題停止發生。也許這也是你的情況。
我沒有找到任何其他解決方法,我認爲這只是支持庫中的錯誤。有用的主題 Remove with delayAnimation between fragments

+0

同樣的問題,刪除setTransaction({ANY})解決了問題 – 2014-12-21 09:16:31

+0

同樣的問題,但我沒有頁眉/頁腳。在導致這次崩潰的更新列表項之間存在某種競爭條件。我刪除了動畫,沒有崩潰。但我需要動畫,所以我添加(如果(位置> = listItems.size()))返回false;改爲isEnabled()。 – Jonas 2015-12-03 13:37:21

相關問題