gpt4 book ai didi

android - notifyDataSetChanged 与 setAdapter

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:57:14 25 4
gpt4 key购买 nike

我知道当我希望适配器显示更新的数据时,使用 notifyDataSetChanged 效率更高。但是,由于我的设计,我每次都在考虑重置适配器,当我需要它来显示新数据时。与使用 notifidatasetChanged 相比,这样的决定会增加多少成本(就执行时间而言)?

最佳答案

有点晚了,但我不喜欢 Ragnar 的回应,因为它并不能解释一切。

基本上,

myListAdapter.notifyDataSetChanged() 

对比

setListAdapter(new ArrayAdapter(myList));

在性能上将非常相似(notifyDataSetChanged 并不是那么无辜:逐步调试以查看它触发所有更改观察者 - 基础列表的每个元素 - 通知他们关于更改)。

在这种情况下,性能并不是您所追求的。根据项目的整体结构,两者都可以或多或少地具有可读性/可维护性。但主要区别在于,通过重新创建适配器,您将失去现有适配器的状态State 会破坏用户与列表交互的结果 - 滚动位置、行选择、交互过程中可能引入的更改。

总而言之,如果您的设计建议您重新创建和重新分配适配器,您可以保留该实现。更可靠和用户友好的方法是调用 notifyDataSetChange

善意的建议

You should think about a change of design.

很好说,但并不总是适用(例如,一个人可能在团队中工作或维护一个他没有控制权/资源来重新实现所有内容的应用程序)。

关于android - notifyDataSetChanged 与 setAdapter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20301677/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com