Android ListView.getChildCount()大于getCount()

时间:2017-03-01 03:37:12

标签: android listview

我有Activity的片段,其中显示的ListView包含简单TextViews。菜单项可以通过Intent触发另一个Activity。新的Activity使用ArrayList清除ArrayAdapter ListView的基础ArrayList.clear()

当我使用Activity从新ListView备份到原始onResume(),并在ListView.getChildCount()中获得控制权时,我发现我的ListView.getCount()与以下时相同它是由于Intent而留下的,但clear()现在正好为零!

我尝试使用适配器的Adapter.notifyDataSetChanged()方法,我尝试了ArrayList(虽然我不应该这样做)。

如果我从片段本身修改底层Activity,那么一切似乎都很好。例如,单击一个元素可以选择删除它,向上或向下移动等等......这样就行了。

另外,如果我然后离开列表clear()并再次返回它,一切都很顺利。显然,ArrayList是相同的列表。我从不创建新列表,只是ArrayList它。

知道Child Count如何可能超过底层元素数?也许Activity的某种观察者不会触发因为invalidate()被暂停?在哪种情况下我怎么能再次同步它们?我曾尝试过security unlock-keychain -p my password /Users/huizhaofang123/Library/Keychains/login.keychain

这是在API 23下。

1 个答案:

答案 0 :(得分:-1)

我似乎找到了解决方法。我注意到另一篇帖子here讨论了线程安全问题。如果您不从原始UI修改列表,这似乎有影响。所以,在我的onResume()中,我再次做了一个setAdapter()。使用相同的适配器和列表,以及中提琴!一切似乎都很好。