2017-03-01 40 views
0

我有一個Activity與片段,顯示ListView包含簡單的TextViews。菜單項可以通過意圖觸發另一個Activity。新的Activity使用ArrayList.clear()清除ArrayAdapter下的ArrayListListViewAndroid ListView.getChildCount()大於getCount()

當我從新Activity備份到我原來的一個與ListView,並且在onResume()得到控制,我發現我的ListView.getChildCount()是一樣的,當有人離開,由於意向爲,但ListView.getCount()現在是正確的零!

我已經嘗試使用適配器的clear()方法,我試過Adapter.notifyDataSetChanged()(雖然我不應該)。

如果我從片段本身修改底層ArrayList,一切似乎都很好。例如,點擊一個元素給你一個選項來刪除它,向上或向下移動它,等等......這工作正常。

此外,如果我然後離開列表Activity並再次返回它,一切都很好。很明顯,ArrayList是相同的列表。我從來沒有創建一個新的列表,只有。 clear()它。

任何想法如何兒童計數可能超過基本元素數?也許某種觀點的ArrayList不會觸發,因爲Activity已被暫停?在這種情況下,我如何再次同步它們?例如,我嘗試了invalidate()

這是在API 23下。

回答

-1

我似乎找到了解決方法。我注意到討論線程安全的另一篇文章here。如果您不從原始用戶界面修改您的列表,它似乎會產生影響。所以,在我的onResume()中,我只是再次做了一個setAdapter()。使用相同的適配器和列表,以及中提琴!一切似乎都很好。

相關問題