我正在使用ArrayAdapter
和ListView
来显示一些图像(我使用Picasso来帮助处理图像)。最初从本地设备上的状态加载图像。适配器具有ids
用于映像,适配器的getView()
方法用于获取路径。如果图像在本地不可用,则本地状态返回图像的URL。如果URL已过期,我需要从后端获取此内容。
如果网址没有过期,我没有任何问题,因为我可以直接提供毕加索的路径或URL,而毕加索将为我处理一切。但是,当我需要从后端获取URL时,我需要异步执行此操作。获取URL后,我尝试执行以下操作,但它似乎无法正常工作(我的getView()
在这种情况下会使用Picasso和URL):
adapter.remove(id);
adapter.add(id);
notifyDataSetChanged()
似乎也做不了多少。
处理这种情况的最佳方法是什么?除了我试图用适配器做什么之外还有其他方法吗?我想尽可能地延迟从后端获取URL,基本上直到用户需要查看图像。
更新:目前,我在网址过期时将id
替换为temp_id
,然后在我拥有有效网址时再次添加正确的id
,以便视图得到刷新。
答案 0 :(得分:0)
您是否尝试使用myArray.clear()清除图像网址的ArrayList?如果我得到你的问题或你的代码是什么样的,那就不太确定了。
但我之前有这样的问题。对我有用的是完全重新填充适配器。
这link应该会有所帮助。