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